該更換的每一個字符是我與元素
$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