首页 > 解决方案 > 如何从用冒号 (:) 分割的 url 中获取参数

问题描述

我有这个网址:“ http://example.com/search/dep_city:LON/arr_city=NYC ”。如何从 PHP 中的这个 url 获取值“LON”和“NYC”?如果 url 使用“$_GET['dep_city']”格式为“dep_city=LON”,这将很容易,但在这种情况下,我很困惑如何做到这一点。提前感谢您的时间和帮助。

标签: phpparse-url

解决方案


从服务器获取 URL,将其分解为多个部分。检查每个部分的 : 或 = 的索引,将其解析为数组。

<?php
$url = substr( $_SERVER["REQUEST_URI"], 1, strlen($_SERVER["REQUEST_URI"]));
$vars = explode("/", $url);

foreach($vars as $var){

    $indexEquals = strpos($var, "=");

    if($indexEquals === false){
        $indexColon = strpos($var, ":");
        $part1 = substr($var, 0, $indexColon);
        $part2 = substr($var, $indexColon+1, strlen($var));
    }else{
        $part1 = substr($var, 0, $indexEquals);
        $part2 = substr($var, $indexEquals+1, strlen($var));
    }

    $params[$part1] = $part2;
}

echo json_encode($params);
die();

推荐阅读