文件中有文字作为示例:
<div class="from">jack</span></div>
hey u
<div class="from">ron</span></div>
bye
我正在尝试删除“”之后的新行标记并替换“|”
我需要的结果是:
<div class="from">jack</span></div>|hey u
<div class="from">ron</span></div>|bye
我尝试了这个,但我认为我弄错了因为它完成了这项工作。
$string = file_get_contents($filename);
$string = str_replace('/(<\/span><\/div>\r\n)', '|', $string);
file_put_contents($filename, $string);
正确的方法是什么?
谢谢
答案 0 :(得分:0)
<?php
$string = '<div class="from"><span>jack</span></div>
hey u';
echo preg_replace('/\r\n/', '|', $string);
答案 1 :(得分:0)
$file_handle = fopen($filename, "r");
$text = "";
while (!feof($file_handle)) {
$line = fgets($file_handle);
if (strpos($line,'<div>') !== false) {
$line = preg_replace('/\r\n/', '|', $line)
}
$text .= $line;
}
file_put_contents($filename, $text);
fclose($file_handle);
如果要逐行读取文件,如果该行有标记,它将替换\ n \ r,然后在最后将所有行写回文件。
答案 2 :(得分:-1)
这取决于使用的行结尾,有三种可能的结尾,\ n,\ r \ n和\ r。
试试这个:
$string = str_replace('/(<\/span><\/div>\n)', '|', $string);
该字符串中的第一个斜杠也是可疑的,所以试试这个:
$string = str_replace('(<\/span><\/div>\r\n)', '(<\/span><\/div>|', $string);