我正在使用Google Places API ...我试图存储一个具有&(&符号)的位置。我似乎无法编码变量。例如,商业名称称为Dave&破坏者,但我可以使用&在请求url的url中,因为那是为参数保留的。我试过更换&如果发现使用这两个功能。也许我错了,...
$name = 'Dave & Busters';
if (strpos($name, '&') !== false) {
//& SIGN FOUND
//WONT WORK FOR URL NEED TO REPLACE
$name = str_replace('&', 'and', $string);
}
$name = urlencode($name);
$url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=$lat,$long&radius=10&type=restaurant&keyword=$name&key=myKey";
编辑*只需使用urlencode()即可。 Dave +只显示
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7455483,-73.5951152&radius=10&type=restaurant&keyword=Dave+&key=AIzaSyD4rcVpAgnP650-DCeL2L4zTnPSo4d81vk
答案 0 :(得分:4)
您需要对查询字符串中使用的任何数据使用urlencode()
。
更好的是,只需使用http_build_query()
:
$url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?' . http_build_query([
'location' => $lat . ',' . $long,
'radius' => 10,
'type' => 'restaurant',
'keyword' => $name,
'key' => 'myKey'
]);