Php 变量在文件中不起作用\u获取\u内容

Php 变量在文件中不起作用\u获取\u内容,php,file-get-contents,Php,File Get Contents,我试图从谷歌地图API中提取内容。 但是当我在URL中连接一个变量时,它就不起作用了 如果我只使用计划文本,它会起作用。 我做错了什么 不工作: $post_location = "lagos"; $url_loc = 'https://maps.googleapis.com/maps/api/geocode/json?address='. $post_location .'&sensor=true&key=AIzaSyDXX_Y0-7b1XM2'; $obj = json_de

我试图从谷歌地图API中提取内容。 但是当我在URL中连接一个变量时,它就不起作用了 如果我只使用计划文本,它会起作用。 我做错了什么

不工作:

$post_location = "lagos";
$url_loc = 'https://maps.googleapis.com/maps/api/geocode/json?address='. $post_location .'&sensor=true&key=AIzaSyDXX_Y0-7b1XM2';
$obj = json_decode(file_get_contents($url_loc), true);

var_dump($obj); //outputs null
但这是可行的:

$url_loc = 'https://maps.googleapis.com/maps/api/geocode/json?address=lagos&sensor=true&key=AIzaSyDXX_Y0-7b1XM2';
$obj = json_decode(file_get_contents($url_loc), true);

var_dump($obj); //outputs all results
为什么第一个选项不起作用

我正在使用的完整代码

<form action="" method="POST">
<input type="text" name="surl" value="/storefront/output.json">
<input type="submit" value="Submit"/>
</form>

我发现你在向URL字符串传递非法字符。如果要将$post_位置变量传递给URL use函数:

$post_location = "some address here";
$url_loc = 'https://maps.googleapis.com/maps/api/geocode/json?address='. 
urlencode($post_location) .'&sensor=true&key=AIzaSyDXX_Y0-7b1XM2';
$obj = json_decode(file_get_contents($url_loc), true);

如果没有urlencode,您将收到警告:
无法打开流:HTTP请求失败!HTTP/1.0 400第7行/var/www/public_html/index.php中的错误请求
-查看日志文件或打开错误显示

我发现您正在向URL字符串传递非法字符。如果要将$post_位置变量传递给URL use函数:

$post_location = "some address here";
$url_loc = 'https://maps.googleapis.com/maps/api/geocode/json?address='. 
urlencode($post_location) .'&sensor=true&key=AIzaSyDXX_Y0-7b1XM2';
$obj = json_decode(file_get_contents($url_loc), true);

如果没有urlencode,您将收到警告:
无法打开流:HTTP请求失败!HTTP/1.0 400第7行/var/www/public_html/index.php中的错误请求
-查看日志文件或打开错误显示

是否尝试过:
$url\u loc=”https://maps.googleapis.com/maps/api/geocode/json?address=$post_位置和传感器=true和key=AIzaSyDXX_Y0-7b1XM2”
@AlvaroAlves为什么会有不同?var\u dump($post\u location,$url\u loc)的输出是什么在您的
文件\u获取内容()
调用之前?。您应该检查代码的其余部分。您在这里介绍的两个示例都“有效”。您还有其他问题没有传达给我们。您是否尝试过:
$url\u loc=”https://maps.googleapis.com/maps/api/geocode/json?address=$post_位置和传感器=true和key=AIzaSyDXX_Y0-7b1XM2”
@AlvaroAlves为什么会有不同?var\u dump($post\u location,$url\u loc)的输出是什么在您的
文件\u获取内容()
调用之前?。您应该检查代码的其余部分。您在这里介绍的两个示例都“有效”。我很高兴我能帮上忙我很高兴我能帮上忙