解析URL携带的参数

<?php
/**
 * 获取URL里的参数值
 *
 * @param string $url URL
 * @param string|null $key 参数名,若不指定参数名则返回全部参数
 * @return mixed 参数值,指定参数名情况下若参数不存在则返回null
 */
function get_value(string $url, string $key = null): mixed
{
    $param = [];

    parse_str(parse_url($url, PHP_URL_QUERY), $param);

    if ($key) {
        return $param[$key] ?? null;
    }

    return $param;
}


$url = 'https://www.manong.life/demo/index.php?name=张三&gender=男&age=18';


// 获取URL里的全部参数
echo print_r(get_value($url), true);
// ========== 输出结果·开始 ========== //
// Array
// (
//     [name] => 张三
//     [gender] => 男
//     [age] => 18
// )
// ========== 输出结果·结束 ========== //


// 获取URL里的指定参数
$name = get_value($url, 'name');
$gender = get_value($url, 'gender');
$age = get_value($url, 'age');
echo "俺叫{$name}{$gender}),今年{$age}岁。" . PHP_EOL; // 俺叫张三(男),今年18岁。


// 获取URL里不存在的参数
$job = get_value($url, 'job');
echo var_export($job, true); // NULL

Copyright © 2024 码农人生. All Rights Reserved