我正在尝试使用php变量替换RewriteCondition中的服务器变量。
forexampe:
我有以下字符串:
public Fraction(int n, int d)
{
//subbed in zeros below so it doesn't give me an error
numerator = n;
denominator = d;
}
我想用$ var ==
替换%{VAR}$x="RewriteCond %{HTTP_HOST} ^www";
上面的代码不起作用,我收到来自php regex解析器的警告:
$x="RewriteCond %{HTTP_HOST} ^www";
preg_replace("/%\{[^}]+)\}/i","$$1==",$x);
我试图用反斜杠逃避$替换,但它也没有解决问题。
这个功能有问题吗?
答案 0 :(得分:1)
错误消息:
警告:preg_replace():编译失败:偏移量为8的不匹配括号
是对的。你的正则表达式中有无与伦比的括号。第8个字符为)
(https://eval.in/485179),但没有(
。
此
$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
修饰符在这里也没有意义,因为你的正则表达式中没有字母字符。如果你计划将来再加上那些,你可以补充一下。