为什么我的变量不会在此字符串中展开?

时间:2010-04-09 16:55:36

标签: php

$q = $_GET['q'];

// Load and parse the XML document 

$rss =  simplexml_load_file('http://search.twitter.com/search.atom?lang=en&q=$q&rpp=100&page=1');

这会返回包含"$q"的结果,而不是包含$q值的结果。为什么它不起作用?

3 个答案:

答案 0 :(得分:3)

在simplexml_load_file行

中将引号更改为双引号
$q = $_GET['q'];

// Load and parse the XML document
$rss = simplexml_load_file("http://search.twitter.com/search.atom?lang=en&q=$q&rpp=100&page=1");

如果字符串是双引号,PHP将自动解析变量

答案 1 :(得分:1)

您需要使用double quotes to have variables getting expanded

  

变量解析

     

当用双引号或heredoc指定字符串时,会在其中解析变量。

所以:

"http://search.twitter.com/search.atom?lang=en&q=$q&rpp=100&page=1"

但如果您使用urlencode正确的网址转义,那就更好了:

'http://search.twitter.com/search.atom?lang=en&q='.urlencode($q).'&rpp=100&page=1'

您也可以在声明$q变量时使用双引号字符串说明:

$q = urlencode($_GET['q']);
$rss = simplexml_load_file("http://search.twitter.com/search.atom?lang=en&q=$q&rpp=100&page=1");

答案 2 :(得分:0)

使用双引号而不是单引号。