【问题标题】:preg_replace not removing unwanted periodpreg_replace 不删除不需要的时期
【发布时间】:2013-02-11 14:00:54
【问题描述】:

我需要在整个 HTML 文档中搜索以下行:

<img alt="Suppliers" class="showme 2-4supp" src="./images/2-4supp.jpg" />

并将./ 替换为存储在$prepend 中的变量。

这是我几乎可以开始工作的代码:

$mypage = preg_replace('/src=\"([.])*?/', "src=\"$prepend_href$1", $mypage);

但是,我得到的结果是:

<img alt="Suppliers" class="showme 2-4supp" src="02_topic/./images/2-4supp.jpg" />

它不会从字符串中删除.。我尝试了不同的方法,我可以让它添加变量,但我不能让它删除 .来自字符串。

【问题讨论】:

  • 02_topic/./images/2-4supp.jpg 和 02_topic/images/2-4supp.jpg 指向同一个文件

标签: regex preg-replace


【解决方案1】:

为什么*?在句号前面,应该换成:

$mypage = preg_replace('#src="\.(?=/)#', "src=\"$prepend_href", $mypage);

【讨论】:

  • 或者使用:$mypage = preg_replace('#src="\.(?=/)#i', "src=\"$prepend_href", $mypage);是你的HTML可以有大小写混合SRC图像属性。
  • 我得到了 的结果.
  • @LisaKomidar:这意味着您的$prepend_href 有一个尾随/。在这种情况下使用:$mypage = preg_replace('#src="\./#i', "src=\"$prepend_href", $mypage);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-20
  • 2014-01-09
  • 2016-10-27
  • 2021-04-02
相关资源
最近更新 更多