当前位置: 首页 > 知识库问答 >
问题:

PHP替换除HTML标记以外的字符

蔺劲
2023-03-14

我需要替换字符0,1,2,。。。,9带有\xD9\xA0\xD9\xA1\xD9\xA2,。。。,\xD9\xA9在字符串中。此字符串来自CKEditor,因此可能包含html标记。使用以下代码

$body = str_replace("1", "\xD9\xA1", $body);

它将每个1替换为\xD9\xA1,因此它会影响标签

包含数字的标签是

我如何用上面的符号替换数字,而不会影响


共有1个答案

翟源
2023-03-14

您不应该使用正则表达式来处理html,但是,如果您仍然希望使用正则表达式,则可以对正则表达式使用discard模式,如下所示:

<.*?>(*SKIP)(*FAIL)|1

工作演示

这个正则表达式背后的思想是跳过

php代码

$re = "/<.*?>(*SKIP)(*FAIL)|1/"; 
$str = "<h0><h1><h2><h3>\n<table border=\"1\">\n1\n"; 
$subst = "\xD9\xA1"; 

$result = preg_replace($re, $subst, $str);

 类似资料:
  • 这是我的密码 我想替换字体标签,并把span标签。在这将取代第一个字体标签但不是第二个标签

  • 问题内容: 这将所有特殊字符替换为“”(空格)。 但是我尝试将破折号“-”排除为特殊字符。 这是我的尝试: 但这不是我期望的。 问 :如何进行这项工作? 问题答案: 如果要匹配除以外的所有字符,可以使用: 例如:

  • 问题内容: 我想显示数据库条目的前110个字符。到目前为止很简单: 但是上面的条目中包含由客户端输入的html代码。因此它显示: 显然没有好处。 我只想剥离所有html代码,所以我需要从数据库条目中删除<和>之间的所有内容,然后显示前100个字符。 有任何想法吗? 问题答案: 采用

  • 问题内容: 我一直在尝试做一个正则表达式来匹配和替换HTML一部分上关键字的出现: 我想匹配和 但是并且不应该匹配 我只对第一行的匹配(和替换)感兴趣。 我想要这样做的原因是要替换为,但前提是它尚未位于标记内。 任何帮助都感激不尽! 问题答案: 我设法通过以下方式完成了我想做的事情( 不使用Regex ): 解析字符串的每个字符 删除所有标签(将它们复制到临时数组并在字符串上保留占位符) 新字符串

  • 问题内容: 我已经看到很多表达式可以删除一个特定的标签(或许多指定的标签),一个可以删除除一个特定标签之外的所有标签,但是我没有找到一种方法来删除其中除许多除外(即所有除外)之外的所有标签。 PHP。我对正则表达式不是很满意,所以我需要帮助。:) 谢谢! 问题答案: 确实做到这一点。

  • 问题内容: 由于HTML5中不推荐使用HTML中的标记(我理解为什么),有没有一种将某些属性和样式仅应用于段落文本 部分 的干净解决方案?我使用JavaScript来解析XML文件,该事实依赖于标签允许使用基于类的CSS格式化部分包装文本的事实。我意识到“ anchor”()标记也可以用于此目的,但是这种方式看起来非常落后且不自然。 编辑 当我问这个问题时(几年前),我未能理解每个DOM元素都属于