【发布时间】:2015-07-10 11:34:30
【问题描述】:
我需要将字符串中的字符0,1,2,...,9 替换为\xD9\xA0,\xD9\xA1,\xD9\xA2,...,\xD9\xA9。该字符串来自 CKEditor,因此它可能包含 html 标签。使用以下代码
$body = str_replace("1", "\xD9\xA1", $body);
它将每个1 替换为\xD9\xA1,因此它会影响标签<h1> 和<table border="1">,而我只需要替换正文中的数字而不是标签。
包含数字的标签是<h0><h1><h2><h3><h4><h5><h6>和cellspacing和cellpadding和border的table标签。
如何用上面的符号替换数字而不影响<h0><h1><h2><h3><h4><h5><h6>和cellspacing和cellpadding和border?
【问题讨论】:
-
永远不要在 html 上使用正则表达式。你需要使用解析器stackoverflow.com/a/1732454/1916721
-
您需要解析 HTML 并仅在 textnodes 上执行替换。
-
我从未使用过任何解析器,如果您能提供更多详细信息,我将不胜感激
-
非常感谢各位,我试试
-
初学者请看 htmlparsing.com,或者这个问题stackoverflow.com/questions/3577641/…
标签: php regex string replace html-parsing