首页 > 解决方案 > 有没有办法在 curl_setopt url 中包含 php 变量?

问题描述

我可以使用以下代码使用位置的纬度和经度数值从天气站点获取 JSON 文件:

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL,'https://weathersite.xyz/complete.json?lat=38.59&lon=-8.43');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
 $fIOURL = curl_exec($ch);
 curl_close($ch) ;

但是,我真正想要的是在 url 中使用 php 变量($latitude 和 $longitude)而不是这些数值,但是当我尝试替换它们时它不起作用。举个例子,

 $latitude="38.50";
 $longitude="-8.43";
 ....
 curl_setopt($ch, CURLOPT_URL,"https://weathersite.xyz/complete.json?lat={$latitude}&lon={longitude}");
 ....

我还尝试了在 url 中单引号和双引号的所有可能性,就像我在 html 中所做的那样,但 curl_setopt 似乎没有任何作用。是否有任何解决方案可以在 curl_setopt 的 url 中包含 php 变量?

标签: phpcurl

解决方案


确保您使用正确的引号类型:

curl_setopt($ch, CURLOPT_URL,"https://weathersite.xyz/complete.json?lat={$latitude}&lon={$longitude}");

在这种情况下,花括号不是必须的。我只是为了可读性添加了它们。

以下是有关PHP 中字符串连接的更多详细信息

本说明准确地解释了您的情况


推荐阅读