我试图用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我试图用反斜杠替换$,但它也解决不了这个问题。
这个功能有什么问题吗?
发布于 2015-12-15 04:27:11
错误信息:
警告: preg_replace():编译失败:偏移量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修饰符在这里也没有意义,因为正则表达式中没有alpha字符。如果你打算在将来拥有这些,你可以把它加回去。
https://stackoverflow.com/questions/34280332
复制相似问题