0

文件中有文本作为示例:

<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);

什么是正确的方法?

谢谢

4

3 回答 3

0
<?php
$string = '<div class="from"><span>jack</span></div>
hey u';

echo preg_replace('/\r\n/', '|', $string);
于 2013-02-15T16:25:39.690 回答
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,然后最后将所有行写回文件中。

于 2013-02-15T16:27:27.287 回答
-1

这取决于使用的行尾,有三种可能的行尾,\n、\r\n 和 \r。

尝试这个:

$string = str_replace('/(<\/span><\/div>\n)', '|', $string);

该字符串中的第一个斜线也是可疑的,所以试试这个:

$string = str_replace('(<\/span><\/div>\r\n)', '(<\/span><\/div>|', $string);
于 2013-02-15T16:24:09.237 回答