0

可能重复:
如何使用 PHP 解析和处理 HTML?

有人可以帮我找到一个解析具有 HTML 和常规文本的文本的解决方案。例如

This is my awesome <b>text</b>. Now <a href="http://google.com">starts</a> a new line...

<img src="http://example.com/image.png"/><br>
<br>
I push news to http://twitter.com .

这应该成为

This is my awesome <b>text</b>. Now <a href="http://google.com">starts</a> a new line...<br>
<br>
<img src="http://example.com/image.png"/><br>
<br>
I push news to <a href="http://twitter.com">twitter.com</a> .

我主要在寻找一个神奇的正则表达式替换功能......现在我做

$text = preg_replace("@(src|href)=\"https?://@i",'\\1="', $description);
$text = nl2br(preg_replace("@(((f|ht)tp:\/\/)[^\"\'\>\s]+)@",'<a href="\\1" target="_blank">\\1</a>', $text));
4

2 回答 2

3

nl2br做得很好。

file_get_contents('filename.html');
nl2br($text);

它专为满足您的需求而设计。

如果您担心 double\n或已经存在的<br />元素,您必须为输入文本(如果您可以控制它)或预处理设计一个方案。

也许在申请之前将all 替换\n\n\nand all <br />\nwith 。\nnl2br

于 2012-10-19T12:44:16.280 回答
0

你可以试试这个

$text = your source text
$text = preg_replace(
    array('/\n/m',  '/\<br\>\<br\>/m' '/\<br\>$/'),
    array("\n<br>", "<br>", ''),
    $text
);

再见

于 2012-10-19T14:05:42.420 回答