簡體   English   中英

Laravel用查詢字符串構建外部URL的最佳方法是什么?

[英]What's Laravel best way to build an external URL with query string?

我目前正在使用Laravel構建項目,並且需要使用查詢字符串構建URL。 URL ::函數和url(),action()等都不是問題,因為它們主要供內部使用。 我需要創建的URL是外部的。

我可以提供一個類似的示例,它是靜態圖像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('&');

簡單的字符串連接:

$myStr = 'puppies.';
echo 'Dogs have '.$myStr;

輸出:

狗有小狗。

您可以通過相同的方式用url字符串連接數組的元素:

$values = Array(
                'center'=>'New York, NY',
                'zoom'=>13,
                'size'=>'600x300'
                 )

$urlTemp = 'https://maps.googleapis.com/maps/api/staticmapcenter=';

$url     =  $urlTemp.$values['center']
           .'&zoom='.$values['zoom']
           .'&size='.$values['size']
           .'&key=KEY';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM