搜索,插入&使用PHP在新的文本文件行上写

时间:2017-03-20 06:29:55

标签: php file

我在搜索文件中的字符串时遇到问题,在搜索到的字符串后插入新行并在新添加的行上写入。目前我正在使用以下代码中的示例和讨论我发现: -

$target = '<18>';
$put = 'Enter';
$file = 'line.txt';

$filename = $file;
$string_i_am_looking_for = $target;
$lines = file( $filename , FILE_IGNORE_NEW_LINES );
$lines[$string_i_am_looking_for] = $put;
file_put_contents( $filename , implode( "\n", $lines ) );

文本文件: -

<17>
<18>
<19>
<20>

在第一次操作时,我能够将$ put放入文本文件中。

<17>
<18>Enter
<19>
<20>

但是,当我更改$ target =“&lt; 20&gt;”时,我无法在新的$ target之后编写。它将出现在第一行旁边。当我越来越多地重新加载页面时,它将继续写在第一行。结果如下: -

<17>EnterEnterEnterEnterEnter
<18>Enter
<19>
<20>

2 个答案:

答案 0 :(得分:0)

Word Enter 不以任何方式换行。您必须将其替换为\r\n\n(取决于文件换行符)。

$target = '<18>';
$put = "\r\n";
$file = 'line.txt';

答案 1 :(得分:0)

试试这个

$target = '<20>';
$put = 'Enter';
$file = 'line.txt';

$filename = $file;
$string_i_am_looking_for = $target;
$lines = file( $filename , FILE_IGNORE_NEW_LINES );
$key = array_search($string_i_am_looking_for,$lines);
$toSearch = $target.$put;
if(!in_array($toSearch,$lines)) {
$lines[$key] = $target.$put;
}
file_put_contents( $filename , implode( "\n", $lines) );