在搜索了各种其他问题后,为了尝试自己解决这个问题,我已经做到了这一点,但我无法弄清楚如何添加额外的字符串。
// $url will actually be $_SERVER['REQUEST_URI']
$url = "/folder123/?id=foo"; // it could be "index.php?id=foo"
preg_replace_callback('#^/folder123/#', function($match) {
return $match[1];
}, $url);
预期结果:?id = foo
使用我当前的代码,我将获得预期的结果;但我不知道如何检查index.php。我的意图是让字符串排除这两部分。
答案 0 :(得分:1)
要匹配它们,您可以使用alternation后跟\K
重置报告的匹配的起点。
^(?:/folder123/|index\.php)\K.*$
preg_replace_callback('#^(?:/folder123/|index\.php)\K.*$#', function($match) { return $match[0]; }, $url);
答案 1 :(得分:1)
我希望这可以帮到你:
$url = "index.php?id=foo22"; // it could be "index.php?id=foo"
preg_replace_callback('/(\?|\&).*/', function($match) {
var_dump($match[0]) ;
}, $url);