处理 HTML 中的文本并重新插入到 HTML 结构中


process text in html and reinsert to html structure

我想从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 标签、属性等......

看看 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并使用环顾来抓取结束和开始标签之间的任何文本片段。然后,通过preg_filter(或preg_replace)传递结果以将任何多个空格替换为单个空格。

希望这对:)有帮助/有效