有人可以帮我找到解析包含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));
答案 0 :(得分:3)
nl2br很好地解决了这个问题。
file_get_contents('filename.html');
nl2br($text);
它专为您的需求而设计。
如果您担心双\n
或已存在的<br />
元素,则必须为输入文本(如果您可以控制它)或预处理设计方案。
在应用\n\n
之前,可能会将所有\n
替换为<br />\n
,将所有\n
替换为nl2br
。
答案 1 :(得分:0)
你可以试试这个
$text = your source text
$text = preg_replace(
array('/\n/m', '/\<br\>\<br\>/m' '/\<br\>$/'),
array("\n<br>", "<br>", ''),
$text
);
再见