![](/img/trans.png)
[英]Php Laravel - What's the best way to create a loop with polling external servers?
[英]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.