preg_replace %{Variable} with $variable


preg_replace %{Variable} with $variable

我正在尝试用php变量替换RewriteCondition中的服务器变量。

外汇市场:

我有以下字符串:

$x="RewriteCond %{HTTP_HOST} ^www";

我想用$VAR==替换%{VAR}

 $x="RewriteCond %{HTTP_HOST} ^www";
preg_replace("/%'{[^}]+)'}/i","$$1==",$x);

上面的代码不起作用,我收到了来自php regex解析器的警告:

compilation failed, unmatched parentheses at offset at

我试图用反斜杠转义替换中的$,但它也没有解决问题。

函数有什么问题吗?

错误消息:

警告:preg_replace():编译失败:偏移量8 处的括号不匹配

是正确的。正则表达式中有不匹配的括号。第8个字符是)(https://eval.in/485179)但不存在CCD_ 2。

这个

$x="RewriteCond %{HTTP_HOST} ^www";
echo preg_replace("/%'{([^}]+)'}/","$$1==",$x);

会给你:

RewriteCond $HTTP_HOST== ^www

以下是regex101演示:https://regex101.com/r/yB0yQ5/2;以及PHP演示,https://eval.in/485180.

i修饰符在这里也没有意义,因为你的正则表达式中没有阿尔法字符。如果你将来打算使用这些字符,你可以重新添加。