吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1206|回复: 4
收起左侧

[求助] 新手菜鸟php文本处理求助

[复制链接]
╰ァBy﹎鑫鑫 发表于 2021-7-27 11:27
大佬们我想助理个文本文本里面的内容是
名字:40
名字1:45
名字2:10
等等
我想实现的是如果每次传两个参数,n=名字3&t=10
判断名字是否存在如果在就整行替换,如果不在就在最后一行进行追加写入
但是在判断有没有写入那步怎么搞都不对琢磨了也百度了试了好久特此求助
[PHP] 纯文本查看 复制代码
<?php  
$mingzi = filter_input(INPUT_GET, "mingzi") ? filter_input(INPUT_GET, "mingzi") :filter_input(INPUT_GET, "n");
$shijian = filter_input(INPUT_GET, "shijian") ? filter_input(INPUT_GET, "shijian") :filter_input(INPUT_GET, "t");
$content = file_get_contents('sj.txt');
$arr = explode(PHP_EOL, $content);
$str = "";
$tmp = "";
for ($i = 0; $i < count($arr); $i++)
{
$a = strstr($arr[$i],$mingzi);
$str = str_replace($a, $mingzi." : ".$shijian, $arr[$i]);
$str = str_replace(array(PHP_EOL),"", $str);
$tmp .= $str.PHP_EOL; 
echo $a;
}
//写入
if ($a == true){
file_put_contents("sj.txt", trim($tmp));
echo "dier1";
}else{
$file = fopen( "./sj.txt", "a" );
fwrite( $file, PHP_EOL.$mingzi." : ".$shijian.PHP_EOL);
fclose( $file );
echo "dier";
}
?>

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

stu2162583 发表于 2021-7-27 13:11
本帖最后由 stu2162583 于 2021-7-27 13:19 编辑

[PHP] 纯文本查看 复制代码
<?php

$name = $_REQUEST['name'];
$time = $_REQUEST['time'];

if (empty($name) || empty($time)) {
    return;
}

$content = file_get_contents('sj.txt');
$arr = explode(PHP_EOL, $content);

$isExists = false;
if (!empty($arr)) {
    foreach ($arr as $i => $item) {
        // 数据存在覆盖
        if (false !== strpos($item, $name)) {
            $arr[$i] = $name . ':' . $time;
            $isExists = true;
            break;
        }
    }
}
// 不存在,附加到数组最后
if (!$isExists) {
    $arr[] = $name . ':' . $time;
}

file_put_contents('sj.txt', implode(PHP_EOL, $arr));


----------------------------------------------------
张三:12
李四:20

----------------------------------------------------
www.example.com?name=李四&time=22

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
╰ァBy﹎鑫鑫 + 1 + 1 热心回复!

查看全部评分

 楼主| ╰ァBy﹎鑫鑫 发表于 2021-7-27 14:13
lianyi 发表于 2021-7-29 11:01
本帖最后由 lianyi 于 2021-7-29 11:18 编辑

像这种存储数据不建议用文本的形式存储,建议用mysql,sqlite等数据库存储

[PHP] 纯文本查看 复制代码
<?php

/**
 * @var string $n
 * @var string $t
 */
extract(array_filter($_REQUEST, function ($v) {
	return is_array($v) ? !empty($v) : $v !== null && trim($v) !== '';
}));
if (!isset($n) || !isset($t))
	exit('参数有误');

$content = @trim(file_get_contents('sj.txt'));

$_name   = preg_quote($n, '/');
$eol     = PHP_EOL;
$content = preg_replace("/(?<=^{$_name}:)\d+(?={$eol}|$)/m", $t, $content, -1, $count);

if ($count < 1)
	file_put_contents('sj.txt', ($content === '' ? '' : $eol) . $n . ':' . $t, LOCK_EX | FILE_APPEND);
else
	file_put_contents('sj.txt', $content, LOCK_EX);

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
╰ァBy﹎鑫鑫 + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| ╰ァBy﹎鑫鑫 发表于 2021-7-30 09:19
lianyi 发表于 2021-7-29 11:01
像这种存储数据不建议用文本的形式存储,建议用mysql,sqlite等数据库存储

[mw_shl_code=php,true]

感谢大佬解答
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表