Nat*_*han 44 php url http query-string
是否有一种简单的方法来获取没有GET参数的请求文件或目录?例如,如果URL是http://example.com/directory/file.php?paramater=value我想要返回的http://example.com/directory/file.php.我很惊讶没有一个简单的索引$_SERVER[].我错过了吗?谢谢!
Ton*_*cas 79
(请注意这个答案,以便更加明显).
最简单的解决方案是:
Run Code Online (Sandbox Code Playgroud)echo parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
Parse_url是一个内置的php函数,其唯一目的是从URL中提取特定组件,包括PATH(在第一个之前的所有内容?).因此,这是我解决这个问题的新"最佳"解决方案.
Stackoverflow:如何删除查询字符串并只获取网址?
您可以在第一次出现之前使用strtok获取字符串?
Run Code Online (Sandbox Code Playgroud)$url=strtok($_SERVER["REQUEST_URI"],'?');
性能注意: 使用explode也可以解决此问题.
strtok的这个应用程序在字符的第一个实例之前返回字符串中的所有内容将比PHP中的任何其他方法执行得更好,但是会将查询字符串保留在内存中.
Bra*_*rad 54
您可以使用$_SERVER['REQUEST_URI']获取请求的路径.然后,您需要删除参数...
$uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2);
Run Code Online (Sandbox Code Playgroud)
然后,添加主机名和协议.
echo 'http://' . $_SERVER['HTTP_HOST'] . $uri_parts[0];
Run Code Online (Sandbox Code Playgroud)
请注意,您必须检测协议为好,如果你混合http:和https://.我作为锻炼留给你.
| 归档时间: |
|
| 查看次数: |
102232 次 |
| 最近记录: |