将数组转化成 url 形式的字符串

function gen_urlstr($param)
{
    $tmp = [];
    foreach ($param as $key => $value) {
        $tmp[] = "$key=$value"; // 一般用这种。
                // $tmp[] = "{$key}={$value}";
                // $tmp[] = "${key}=${value}";
    }
    return implode('&', $tmp);
}

$param['example1'] = 'example1';
$param['example2'] = 'example2';
$param['example3'] = 'example3';

$param = [
    'example4' => 'example4',
    'example5' => 'example5',
];

$query = http_build_query($param);
本作品采用《CC 协议》,转载必须注明作者和本文链接
Study hard and make progress every day. Study hard and make progress every day.
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7
function gen_urlstr($params)
{
$tmp = [];
foreach ($params as $key => $value) {
$tpm[] = "$key=$value"; // 一般用这种。
// $tpm[] = "{$key}={$value}";
// $tpm[] = "${key}=${value}";
}
return implode('&', $tmp);
}

感觉是不是少了 urlencode

6年前 评论

@edwin404 对,这样生成的内容并不是 url query

6年前 评论
mouyong

@edwin404 如果需要 query 的话,用 http_build_query() 比较便捷,如果要用上面的那个函数,遍历的时候对 $value 进行 urlencode() $tpm[] = "$key=" . urlencode($value);

6年前 评论
mouyong

@leung0826 抱歉,现在才看到:joy:

6年前 评论

@蜗牛 是不是 $key 也得 urlencode 一下 :smirk:

6年前 评论
mouyong

@edwin404 key 吗?:joy: 那样就变成了真的 query 了。

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!