我在搜索文件中的字符串时遇到问题,在搜索到的字符串后插入新行并在新添加的行上写入。目前我正在使用以下代码中的示例和讨论我发现: -
$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>
答案 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) );