用br替换换行符但在PHP中用h1后忽略换行符

时间:2010-02-23 19:12:43

标签: php newline

是否可以使用<br>代码替换换行符,但忽略</h1>代码后面的换行符?

例如,我想更改此块:

<h1>Test</h1> \n some test here \n and here

对此:

<h1>Test</h1> some test here <br /> and here

2 个答案:

答案 0 :(得分:1)

$subject = "<h1>hithere</h1>\nbut this other\nnewline should be replaced.";
$new = preg_replace("/(?<!h1\>)\n/","<br/>",$subject);
echo $new;

// results in:
// <h1>hithere</h1>
// but this other<br/>newline should be replaced.

应该有效。这表示\ n不会立即出现在h1&gt;

之前

答案 1 :(得分:1)

使用字符串函数而不是正则表达式,并假设</h1>标记可以在行上的任何位置(而不是在换行符之前):

$lines=file($fn);
foreach ($lines as $line) {
  if (stristr("$line", "</h1>") == FALSE) {
    $line = str_replace("\n", "<br />", $line);
  }
  echo $line;
}

,对于您的示例,结果为:

<h1> {测试{1}}
这里有一些测试</h1><br />