该更换的每一个字符是我与元素
$str = 'Just a <span class="green">little</span> -text åäö width 123#';
这就是我需要的跨度和空间
结果,可能是换行也是如此。
$result = '<span></span><span></span><span></span><span></span> <span></span> <span class="green"><span></span><span></span><span></span><span></span><span></span><span></span></span> <span></span><span></span><span></span><span></span><span></span> <span></span><span></span><span></span> <span></span><span></span><span></span><span></span><span></span> <span></span><span></span><span></span>';
你可能想知道我可能需要这样做。我想要建立一个角色由块代表的东西。在Windows XP上看起来有点像碎片整理。
问题
- 与
<span></span>
替换每个字符。 - 请勿触摸字符串中已存在的HTML范围(可能很难?)。可以有多个HTML元素。
- 请勿触摸空格和换行符。
- 正则表达式应该这样做吗?或Xpath?
到目前为止我做了什么?
我发现对正则表达式的文章而不更换每个字符(摘录空间和换行符)
$result = preg_replace("/???/", "<span></span>", $str);
print_r($result);
试'的preg_replace(“/([^:空间:\ n“)/”,“”,$ str);'[]是一组字符,^是NOT,:空格或\ s是空格\ n是换行符 – Waygood 2013-04-30 10:13:26
“不要碰已存在于字符串“部分的HTML是正则表达式解决方案导致问题的地方。你真的想使用DOM解析器,只遍历文本节点,并在这些节点上应用'/ \ S /' - >'替换。 [这是一个很好的概述你的DOM解析选项](http://stackoverflow.com/questions/3577641/how-to-parse-and-process-html-xml) – 2013-04-30 10:36:59
是否只有一个HTML跨度或有更多 ? – HamZa 2013-04-30 10:41:00