0

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

4

1 回答 1

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);

我无论如何都不是正则表达式专家,所以我确信有一种更优雅的方法可以做到这一点,但这可能对你有用:首先做 apreg_replace_callback并使用环视来抓取结束和开始标签之间的任何文本片段。然后,通过preg_filter(or preg_replace) 传递结果以将任何多个空格替换为单个空格。

希望这会有所帮助/有效:)

于 2012-04-11T22:05:54.307 回答