以PHP为例更新文件中的数据

以PHP为例更新文件中的数据,php,Php,我有一个文件如下所示: id,filename,lastname 1234,aron,shushu 1221,moshe,sis 例如,我想将id“1221”的名称改为“minim”, 有人知道如何在PHP中实现这一点吗 我试着像这样用爆炸来分开它: id,filename,lastname 1234,aron,shushu 1221,moshe,sis $str1=explode(“\n”,$str); $str2=爆炸(“,”,$str1); 我

我有一个文件如下所示:

id,filename,lastname     
1234,aron,shushu     
1221,moshe,sis
例如,我想将id“1221”的名称改为“minim”, 有人知道如何在PHP中实现这一点吗

我试着像这样用爆炸来分开它:

id,filename,lastname     
1234,aron,shushu     
1221,moshe,sis
$str1=explode(“\n”,$str);
$str2=爆炸(“,”,$str1);

我只是没有成功,我只是无法找到我一直在寻找的正确解决方案

此代码应该适合您。将内容放在文件中并运行此代码

$file = fopen( "file.txt", "r" );
$line = 0;

while ( ! feof( $file ) ) {
    $lineToChange = fgets( $file );
    if ( $line > 0 && $line < 3) {
        $commaPosition = strpos( $lineToChange, ',' );
        $changedStr = substr_replace($lineToChange,'minim',0,$commaPosition);
        $result .= $changedStr;
    }
    else{
        $result .= $lineToChange;
    }
    $line ++;
}
fclose( $file );

file_put_contents('file.txt', $result);
echo $result;
$file=fopen(“file.txt”、“r”);
$line=0;
而(!feof($file)){
$lineToChange=fgets($file);
如果($line>0&&$line<3){
$commaPosition=strpos($lineToChange,,');
$changedStr=substr\u replace($lineToChange,'minim',0,$commaPosition);
$result.=$changedStr;
}
否则{
$result.=$lineToChange;
}
$line++;
}
fclose($文件);
文件内容('file.txt',$result);
回声$结果;

欢迎来到堆栈溢出。虽然我们很乐意在您陷入困境时提供帮助,但我们仍然希望您自己为达成解决方案而努力。如果您尝试了某项功能,请共享您的代码并解释它在哪里无法满足您的需要不起作用,因为
$str1
不是字符串,而是数组。无论哪种方式,您都可以找到一个处理特定文件类型的库,如@ADyson建议的,或者如果这只是一些常规文本文件,看一看。谢谢你的回答,但它不是一个csv文件,它是一个看起来csv失败的文件。这意味着我无法获得正确的更新代码,我尝试使用stru_replace,但它在所有地方都改变了我。例如,我想用1替换2,所以它在每个地方都替换了我写的1,就像在sql update中一样,或者更好不过……将数据存储为JSON而不是CSV,这样在其中查找单个数据片段就容易多了。CSV设计用于一次性批量数据传输,而不是作为用于读取和写入单个项目的数据存储库。或者比这更好…就像其他人一样使用数据库。如果您不想拥有完整的数据库服务器,可以使用基于文件的数据库,如SQLite,它不需要额外的设置或维护,对于用户数较少的小型数据库也可以。