PHP变量作为URL中的参数

时间:2011-06-25 12:34:42

标签: php api url variables parameters


我想创建天气线人,通过访客的IP显示天气预报。
我正在尝试将变量 $ ip 添加到URL,但它不起作用。当我放置真正的IP而不是。$ ip。时,它可以工作。
我做错了什么?

$ip=$_SERVER['REMOTE_ADDR'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://free.worldweatheronline.com/feed/weather.ashx?key=xxxxxxxxxxxxxxx&q=.$ip.&localObsTime&num_of_days=5&format=json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$outputJson = curl_exec($ch);
 if ($outputJson === FALSE) {
 echo 'Error: '.curl_error($ch);
 }

 echo '<pre> ';
 print_r($outputJson);   
 echo '</pre> ';  

4 个答案:

答案 0 :(得分:2)

$ip之前和之后你有一些不必要的点:

使用以下任何一项:

"http://...$ip..."
"http://...{$ip}..."
"http://..." . $ip . "...";

答案 1 :(得分:1)

尝试

curl_setopt($ch, CURLOPT_URL, "http://free.worldweatheronline.com/feed/weather.ashx?key=xxxxxxxxxxxxxxx&q=".$ip."&localObsTime&num_of_days=5&format=json");

答案 2 :(得分:1)

您不需要连接字符串,因为您使用的是双引号。所以你要么:

curl_setopt($ch, CURLOPT_URL, "http://free.worldweatheronline.com/feed/weather.ashx?key=xxxxxxxxxxxxxxx&q=$ip&localObsTime&num_of_days=5&format=json");

在网址中。

答案 3 :(得分:0)

您正在使用字符串中的字符串连接运算符。要么使用

"http://free.worldweatheronline.com/feed/weather.ashx?key=xxxxxxxxxxxxxxx&q=$ip&localObsTime&num_of_days=5&format=json"

'http://free.worldweatheronline.com/feed/weather.ashx?key=xxxxxxxxxxxxxxx&q='.$ip.'&localObsTime&num_of_days=5&format=json'