我想从HTML中获取文本做一些过程并更改为它并使用php重新插入该HTML代码。
<p>This is my sentence <span>and more</span> also <strong>important</strong> part.</p>
什么是最好的方法?使用preg_ *?如何将我的文本重新插入HTML样式?
例如,我想删除单词之间的所有双倍或更多空格。
preg_replace('/\s+/', ' ', $myText);
但我想在我的html文本中应用而不是html标签,属性等......
答案 0 :(得分:1)
看看DomDocument。它将允许您对HTML进行一些操作。
http://www.php.net/manual/en/domdocument.loadhtml.php
修改强>
如果您想详细说明您想要对HTML示例做些什么,我们可能会提供更具体的答案:)
修改强>
要反映更新后的答案:HTML中的多个空格无论如何都应该折叠,但如果您想删除它们,那么您可以尝试以下操作:
$result = preg_replace_callback('/(?<=\>)[\w\s]+(?=\<)/', function($match) {
return preg_filter('/\s+/', ' ', $match[0]);
}, $str);
我不是一个正则表达式专家,所以我确信有更优雅的方式来做到这一点,但这可能对你有用:首先做一个preg_replace_callback
并使用lookarounds来抓取任何文本end和start标签之间的片段。然后,通过preg_filter
(或preg_replace
)传递结果,将任意多个空格替换为单个空格。
希望这有助于/工作:)