PHP使用查询分解URL

PHP使用查询分解URL,php,explode,Php,Explode,我对PHP不感兴趣,并尝试使用如下URL: http://www.website.com/presale-event?eventId=386158&presaleId=5dbb0ec3f6f96355f00c2173 。。。最后设置$eventId=386158和$presaleId=5dbb0ec3f6f96355f00c2173 这是我尝试过的,但我知道“预售活动”不是完整的$uri_段[1]。只是不确定解析这个的语法是否正确。注意:我只想在$uri_segments[1]“包含”预售事件时

我对PHP不感兴趣,并尝试使用如下URL:

http://www.website.com/presale-event?eventId=386158&presaleId=5dbb0ec3f6f96355f00c2173

。。。最后设置
$eventId=386158
$presaleId=5dbb0ec3f6f96355f00c2173

这是我尝试过的,但我知道“预售活动”不是完整的$uri_段[1]。只是不确定解析这个的语法是否正确。注意:我只想在$uri_segments[1]“包含”预售事件时触发此命令

if (isset($_SERVER['REQUEST_URI'])) {
    $uri_segments = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
    if ($uri_segments[1] === 'presale-event') {
        list($eventId, $presaleId) = explode('=', $uri_segments[1], 2);
    }
}

要从URL获取查询参数及其值,请执行以下操作:

$url = "http://www.website.com/presale-event?eventId=386158&presaleId=5dbb0ec3f6f96355f00c2173";
$parsedUrl = parse_url($url);
if ($parsedUrl['path'] == '/presale-event') {
    $queryString = $parsedUrl['query'] ?? '';
    parse_str($queryString, $queryParams);
    var_dump($queryParams);
}
产出将是:

array(2) {
  ["eventId"]=>
  string(6) "386158"
  ["presaleId"]=>
  string(24) "5dbb0ec3f6f96355f00c2173"
}

如果查询字符串与当前传入的请求相关,那么您也可以使用$\u-GET数组,而不是解析URL。

关于$\u-GET['eventId']和$\u-GET['presaleId],这很有效。这听起来可能很愚蠢,但是如何显式地将变量$eventId和$presaleId设置为它们的值呢?i、 所以我可以稍后在PHP7中使用if(isset($eventId)){blah}:
$eventId=$queryString['eventId'])??空值
此操作有效:
$eventId=htmlspecialchars($\u GET[“eventId”])$presaleId=htmlspecialchars($_GET[“presaleId”])