【发布时间】:2018-11-04 01:47:03
【问题描述】:
在搜索了各种其他问题以尝试自己解决这个问题后,我已经走到了这一步,但我不知道如何添加额外的字符串。
// $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。我的意图是让字符串排除这两个部分。
【问题讨论】:
-
没有上下文很难帮助你。为什么要排除 index.php 或 folder123?我认为访问
$_GET会更容易 -
一定要使用
RegEx吗?您还可以使用其他功能 -
例如:$url = "/index.php/?id=foo"; echo substr($url , strpos($url, '?'))
-
@Mike 在某些地址中可能没有任何 GET 变量,因此不适合。不需要额外的上下文,因为我不是在寻找可能无法在所有情况下都有效的替代解决方案。
-
测试一下:preg_replace_callback('/(\?|\&).*/', function($match) { var_dump($match[0]) ; }, $url);跨度>
标签: php trim regex-negation truncate