我试图
answer this question
(答案已删除,所以这是我的代码)。
<?php
function remove_get_param($uri, $name) {
return preg_replace('/(?<=\?|&|;)' . preg_quote($name, '/') . '=[^&;]*/', '', $uri);
}
我的初始代码正在使用第一个参数,例如
?
当它不应该的时候。我试着做一个回溯断言,但是php说…
警告:preg_replace():编译失败:在第4行的偏移量11处没有重复的内容
我对regex断言比较陌生,但我假设
后向断言
方法
确保此模式在前面,但不要将其作为匹配的一部分使用
.
我通过谷歌搜索语法
Regex奶酪热
我下载的结果png说语法是
?<=
.
我做错什么了?
谢谢
更新
再次问好。以下是导致上述警告两次的一些示例用法…
echo remove_get_param('http://mysite.com?param1=1¶m2=2', 'param2') . "\n";
echo remove_get_param('http://mysite.com?param1=1¶m2=2', 'param1');
我还应该提到我有这些错误
codepad.org
. 不好意思,我知道codepad.org运行在一个时髦的环境中。