繁体   English   中英

处理 PHP URL 和 GET 请求

[英]Handling PHP URL and GET requests

我目前正在通过分解 URL 来解析任何给定的 url,例如example.com/page/1example.com/api/info/1

$REQ = explode('/', $_SERVER['REQUEST_URI']);
array_shift($REQ);
$REQ = array_filter($REQ, function($value) { return $value !== ''; });]

然后像这样访问它在数组中的元素:

if (count($REQ) > 1 && $REQ[0] == 'page' && $REQ[1] == '1'){
    \\ show page 1
}

但是我如何处理(并以相同的方式通过数组访问)还包含 GET 元素的 url,例如example.com/page?id=1example.com/api/info?=hello

我正在使用 nginx 并尝试使用如下文件:

location / {
    index index.php;
    try_files $uri /index.php?$query_string;
    }

您可以通过parse_url function 解析 URL,对于查询参数,您可以使用parse_str function 并提取所有查询参数。

$url = 'https://example.com/api/info?param1=hello&param2=wrold';

$url_parts = parse_url($url);
var_dump($url_parts);
parse_str($url_parts['query'], $query_params);
var_dump($query_params);

Output:

array(4) {
  ["scheme"]=>
  string(5) "https"
  ["host"]=>
  string(11) "example.com"
  ["path"]=>
  string(9) "/api/info"
  ["query"]=>
  string(25) "param1=hello&param2=wrold"
}
array(2) {
  ["param1"]=>
  string(5) "hello"
  ["param2"]=>
  string(5) "wrold"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM