0

嘿,我只是偶然发现了一些东西,只要没有副作用,这将为我节省很多工作,也就是说你有这个文件

0
0
0

而且您需要向其中添加数字,有点像计数,但您还想修改字符串中的特定字符,而不是添加它们....但是您想添加到末尾而不是修改任何不存在的字符指数...

因此,如果您采用上面的这些行之一,并在其上使用 str_split,然后尝试通过编号索引添加一些内容,它似乎不会感到困惑!

比如说我想修改该文件第 2 行的第 20 个索引。由于没有第 20 个索引,它只会自动将元素添加到数组的末尾。

我可以让这张幻灯片,还是让它这样做有风险?就像我不知道的副作用之类的......

伙计,如果我有任何问题需要关闭,因为他们不明白我在问什么......:P

对不起,但我想不出还能用什么词来形容它。

好的,这是一些代码

$change_str = str_split($array_change[$list_num]);
UltraDB($change_str, "Change String BEFORE");
$change_str[20] = '5';
$array_change[$list_num] = implode('', $change_str);
foreach($array_change as $v){
file_put_contents("file.txt", $v . "\n", FILE_APPEND);
}
UltraDB($array_change, "File is now.");

UltraDB 只是我结合 var_dump 回显和换行符的调试功能

编辑:好的,只是想如何更好地表达我的问题:当由 str_split 制成的数组中不存在索引时,但您想添加该数组的某个索引,如果该索引尚不存在,是否正常因为它只是将您要添加的内容添加到结束索引?

4

2 回答 2

0

我没有正确理解它,但这里是您可以安全地编辑第 20 行的方法,而无需任何需要的值,只需通过行号:

$file = file('file.txt');
$file[19] = $file[19]++; // the index starts with so for line 20 we take index 19

// and saving it
file_put_contents('file.txt', implode(PHP_EOL, $file));
于 2012-04-19T20:14:30.947 回答
0

以上内容令人困惑,但我认为这就是您要问的。未经测试所以是的......无论如何......

$d=' '; //delimiter

$x=20;  //how many lines in
$y=10;  //how many values out
$z=4;   //value to insert at X/Y

$file = file('file.txt');
$tmp = explode($d, $file[$x]);

if($file[$y]) {
    $file[$y]=$z;
} else {
    $file[]=$z;
}

foreach($file as &$line){
    $line = implode($d, $line);
}

file_put_contents('file.txt', implode(PHP_EOL, $file));
于 2012-04-19T22:25:08.497 回答