php - Laravel 使用查询字符串构建外部 URL 的最佳方法是什么?

标签 php url laravel

我目前正在使用 Laravel 构建一个项目,我需要使用查询字符串构建 URL。 URL::函数和 url()、action() 等是不可能的,因为它们主要是为内部使用而构建的。我需要创建的网址是外部的。

我可以给出的一个类似的例子是静态图像 Google Maps api 的外部 URL:

https://maps.googleapis.com/maps/api/staticmap?center=New+York,NY&zoom=13&size=600x300&key=KEY

如果你有数组:

<!-- language: lang-php -->
array(
    'center'=>'New York, NY',
    'zoom'=>13,
    'size'=>'600x300'
)

我主要问这个问题,因为目前我不可能安装 http_build_url/查询扩展,而且有很多函数在内部执行此操作。我只是找不到最好的地方来“插入”自己。

最佳答案

如果您需要重新发明轮子(这很糟糕,很抱歉听到),您可以这样做。

$queryString = '';
$arrayLength = count($myArray);
foreach ($myArray as $key => $val) {
    $queryString .= urlencode($key) . '=' . urlencode($val);
    $arrayLength--;
    if ($arrayLength) {
        $queryString .= '&';
    }
}

我将它保存为一个函数,并有一个单独的函数来构造 url,例如

function buildUrl($baseUri, $params) {
    return sprintf("%s?%s", $baseUri, buildQueryString($params));
}

但我并不是 100% 这就是您真正想要的,所以如果我错了,请道歉。

编辑:四年后,鉴于他们要求 Laravel 方法,我会做这样的事情:

collect($array)->map(function ($value, $key) {
    return urlencode($key) . '=' . urlencode($value);
})->join('&');

关于php - Laravel 使用查询字符串构建外部 URL 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808796/

相关文章:

android - 从浏览器 : ERR_UNKNOWN_URL_SCHEME 通过 Whatsapp 分享

php - laravel 中的 mysqli_connect() 错误,次要版本错误

php - PDO 参数数量无效

php - header 位置+内容配置

c# - 带有 ApplicationPath 的 ASP.NET MVC Action

php - 自定义 SEO 友好链接

php - 访问器在 Laravel 5.5 中不起作用

php - 使用推送器将所有消息保存在我的服务器上

php - 获取迭代的 ul 内容的唯一 id

PHP AJAX Jquery - 文件下载问题