嘿嘿我偶然发现的东西,如果没有副作用,那将会为我节省很多工作,就是说你有这个文件
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 echoing和换行符
编辑:好的只是想如何更好地说出我的问题:当一个索引不存在于由str_split构成的数组中,但是你想要添加该数组的某个索引时,如果该索引尚不存在,它只是添加你要添加到结束索引的内容是正常的吗?
答案 0 :(得分: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));
答案 1 :(得分: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));