如何编辑dat文件中的行?

时间:2014-04-05 03:18:52

标签: php

如何使用php编辑.dat文件中的行?

.dat文件:

1|example1|123
2|example2|234
3|example3|345

我想编辑2及其旁边的所有内容。示例输出:

1|example1|123
2|edited2|234
3|example3|345

2 个答案:

答案 0 :(得分:0)

$handle = fopen("file.dat", "r");
$reconstruct = "";

if ($handle) {
    while (($line = fgets($handle)) !== false) {

         $linenumber = explode("|", $line, 1);

         if($linenumber == "2")
         {
             $reconstruct .= "2|edited2|234\r\n";
         }else{
             $reconstruct .= $line;
         }
     }
     if (fwrite($handle, $reconstruct) === FALSE) {
        echo "Cannot write to file";
        exit;
     }
} else {
    echo "Cannot open file";
}
fclose($handle); 

答案 1 :(得分:0)

看看这是否适合你:

<?php
  $contents = file_get_contents("myfile.dat");
  // if you just need to replace a specific string:
  $newContent = preg_replace("/2\|example/", "2|edited", $contents);
  echo $newContent;
  file_put_contents("myNewFile.dat", $newContent);
?>

输出:

1|example1|123
2|edited2|234
3|example3|345

我把它写成新文件以防止意外覆盖(更适合测试)。如果您使用相同的文件名,则可以&#34;编辑&#34;,实际上。