用MD5字符串替换URL的preg_replace函数

3
我正在尝试从一个字符串中删除子字符串。该字符串是一个 HTML 文档,需要删除的子字符串如下:
t.php?t=71f51692772c336bd9bb26d93c985eb5 <= Always a MD5 hash. 

t.php?t=MD5Hash 替换为 1.gif

我尝试了以下示例,但不起作用:

$FileHTML = preg_replace("t.php?t=/^[0-9a-f]{32}$/i", "1.gif", $FileHTML);

有人能帮我吗?


你的分隔符放错地方了。/t.php?t=[0-9a-f]{32}$/i 是正确使用它的方式。 - Alma Do
@AlmaDo 除了 ^ 还是不对的。 - Niet the Dark Absol
@NiettheDarkAbsol 对,我刚刚错过了它。已修复,谢谢(因为我相信它根本不应该在那里,所以完全没有留下 ^)。 - Alma Do
2个回答

3
一个经常被重复的短语:你做错了!
$FileHTML = preg_replace("/\Qt.php?t=\E[0-9a-f]{32}/i","1.gif",$FileHTML);

解释:

  • \Q:字面匹配...
    • t.php?t=
  • \E:字面匹配结束
  • [0-9a-f]{32}:匹配32位十六进制数字

注意:不要使用^$


0
你也可以使用这个。
$FileHTML = preg_replace("/[t.php?t=]+[0-9a-f]{32}/i","1.gif",$FileHTML);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接