PHP preg_用自定义URL替换古怪
我使用以下代码在标记后面添加标记 这就是它产生的输出:PHP preg_用自定义URL替换古怪,php,preg-replace,Php,Preg Replace,我使用以下代码在标记后面添加标记 这就是它产生的输出: <a href="$link$/3/">Test Link</a> <a href="http://www.google.com/">Google</a><span>test</span> $url=preg_quote$url,“~”;美元符号通常被解释为:输入结束。$url=preg_quote$url,“~”;美元符号通常被解释为:输入结束。$在正则表达式中有特
<a href="$link$/3/">Test Link</a>
<a href="http://www.google.com/">Google</a><span>test</span>
$url=preg_quote$url,“~”;美元符号通常被解释为:输入结束。$url=preg_quote$url,“~”;美元符号通常被解释为:输入结束。$在正则表达式中有特殊含义。下线。您的表达式将按如下方式展开:
$html = preg_replace("~<a.*?href=\"$link$/3/\".*?>.*?</a>~i", "$0<span>test</span>", $html);
$在正则表达式中有特殊含义。下线。您的表达式将按如下方式展开:
$html = preg_replace("~<a.*?href=\"$link$/3/\".*?>.*?</a>~i", "$0<span>test</span>", $html);
$被视为特殊的正则表达式字符,需要转义。用于在将$url传递给preg_replace之前对其进行转义
$被视为特殊的正则表达式字符,需要转义。用于在将$url传递给preg_replace之前对其进行转义
只是有人是对的;如果要将特殊正则表达式字符解释为文字,则必须对其进行转义
在我看来,它也无法执行替换,因为它从未匹配
尝试替换此行:
$urls[] = '$link$/3/';
为此:
$urls[] = '$link/3/';
只是有人是对的;如果要将特殊正则表达式字符解释为文字,则必须对其进行转义
在我看来,它也无法执行替换,因为它从未匹配
尝试替换此行:
$urls[] = '$link$/3/';
为此:
$urls[] = '$link/3/';
正则表达式不用于解析HTMLregular表达式不用于解析HTMLD'oh。我完全相信我的美元符号与EOL/EOI相符。为了避免这个问题,我会避开他们。谢谢你的快速回复!哦。我完全相信我的美元符号与EOL/EOI相符。为了避免这个问题,我会避开他们。谢谢你的快速回复!这是不可能的,因为这是我的脚本得到的动态输入。我只是将其设置为静态以显示其失败的位置。您的意思是说$link应该引用一个变量吗?在这种情况下,您必须将$link变量连接到“/3/”,或者将整个变量用双引号而不是单引号括起来$URL[]=$link/3/;我的意思是说那句话是100%正确的。这是我从数据库中得到的数据。我只是用单引号来说明。我现在使用preg_quote让它工作得很好。这是不可能的,因为这是我的脚本得到的动态输入。我只是将其设置为静态以显示其失败的位置。您的意思是说$link应该引用一个变量吗?在这种情况下,您必须将$link变量连接到“/3/”,或者将整个变量用双引号而不是单引号括起来$URL[]=$link/3/;我的意思是说那句话是100%正确的。这是我从数据库中得到的数据。我只是用单引号来说明。我现在用preg_quote让它工作得很好。
$urls[] = '$link/3/';