替换使用&的网址中的字符

时间:2017-07-15 04:37:53

标签: php function character-encoding google-places-api

我正在使用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

1 个答案:

答案 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'
]);