有没有比我对正则表达式了解更多的人知道如何拆分 html 代码,以便将所有标签和所有单词分开,即。
<p>Some content <a href="www.test.com">A link</a></p>
是这样分开的:
array = { [0]=>"<p>",
[1]=>"Some",
[2]=>"content",
[3]=>"<a href='www.test.com'>,
[4]=>"A",
[5]=>"Link",
[6]=>"</a>",
[7]=>"</p>"
到目前为止,我一直在使用 preg_split ,并且成功地设法按空格分割字符串或按标签分割字符串 - 但当我需要将其分割到时,所有内容都在一个数组元素中。
有人帮我吗?
在这种情况下不应使用 preg_split。尝试 preg_match_all:
$text = '<p>Some content <a href="www.test.com">A link</a></p>';
preg_match_all('/<[^>]++>|[^<>\s]++/', $text, $tokens);
print_r($tokens);
output:
Array
(
[0] => Array
(
[0] => <p>
[1] => Some
[2] => content
[3] => <a href="www.test.com">
[4] => A
[5] => link
[6] => </a>
[7] => </p>
)
)
我假设你忘记包括'A'
in 'A link'
在你的例子中。
意识到当你的 HTML 包含 并不意味着作为标签的开始或结束时,正则表达式会把事情搞得一团糟! (因此出现警告)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)