php - PHP 用查询分解 URL
问题描述
我是 PHP 的菜鸟,并试图采用这样的 URL:
http://www.website.com/presale-event?eventId=386158&presaleId=5dbb0ec3f6f96355f00c2173
...最终设置$eventId = 386158
和$presaleId = 5dbb0ec3f6f96355f00c2173
这是我尝试过的,但我知道“预售活动”不是完整的 $uri_segments[1]。只是不确定解析这个的正确语法。请注意,我只希望在 $uri_segements[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"
}
如果查询字符串与您当前的传入请求相关,而不是解析 URL,您也可以使用 $_GET 数组。
推荐阅读
- aframe - 将球体定位在 a 元素上方并在浏览器调整大小时保持位置
- javascript - 开玩笑 - 模拟工厂功能
- php - 使用 PUT 方法更新 Sql 在 utf-8 中不起作用
- swift - Swift 从元类型获取类型
- javascript - React 中这两种方法的性能差异是什么?
- php - 使用 ACF 向多个自定义字段添加 html 标记,数组自定义字段不起作用
- php - Google MyBusiness API PHP 位置
- amazon-web-services - 自动从 S3 中删除旧备份并每月移动到 Glacier
- angular - ForkJoin 无法从多个声明的主题中分叉可观察对象
- kernel-module - 如何手动安装 linux usbserial 内核驱动程序?