2012-08-04 32 views
-2

我碰到了一点障碍。我忙于为我的社交网络隐私意识网站建立搜索功能。搜索将查询Facebook的图形API,你可以做使用https://graph.facebook.com/search?q=i恨我的老板&类型=张贴&上限= 100 &区域= EN_GB我的问题是,我希望把周围的查询报价,以便当用户键入的文本字段并点击搜索按钮的PHP代码做的休息和查询API,但在同一时间将查询它像https://graph.facebook.com/search?q=“我恨我的老板”。PHP中的搜索查询函数

问题是我该怎么做?我的代码仅仅是局部的,以保持它的地方是点:

$str = $_REQUEST['query']; 
$str = urlencode($str); 
$fbquery = "https://graph.facebook.com/search?q={$str}&type=post&limit=100&locale=en_GB"; 

很显然,我问在哪里或如何我会把报价在那里的问题吗?

任何人都可以帮助我,我非常感谢它!我曾尝试其他的东西,如:

$str = '".$str."'; 

$str = '"$q"'; 

但都没有奏效。请帮忙!

在此先感谢:-)

+0

你试过的东西清楚地表明了一些非常基本的PHP语法问题的缺失知识。在继续使用FB API之前,您应该尝试加深对这些基础知识的了解。 http://www.php.net/manual/en/language.types.string.php – CBroe 2012-08-04 19:56:57

回答

-1

如何:

$fbquery = "https://graph.facebook.com/search?q=\"{$str}\"&type=post&limit=100&locale=en_GB";

+0

这不行,先生。 – fdomig 2012-08-04 18:15:30

1

既然你是通过GET传递的查询字符串的URL,如果你需要传递之前编码查询它在url中。

php urlencode函数执行此操作。

所以不是:

y = "https://graph.facebook.com/search?q={$str}"; 

需要

$encoded_str = urlencode($str); 
y = "https://graph.facebook.com/search?q={$encoded_str}"; 

例如:

https://graph.facebook.com/search?q=good

https://graph.facebook.com/search?q=good%20wine

,其中在第二个例子中,被翻译成%20

0

我认为加上引号urlencode应该工作。还要考虑使用http_build_query函数,它应该为您提供有效的查询字符串结果,并且可读性更强一点。

$params = http_build_query(array(
    'q' => '"'.$str.'"', 
    'type' => 'post', 
    'limit' => 1000, 
    'local' => 'en_GB', 
)); 

print 'https://graph.facebook.com/search?'.$params; 

在我的测试中,添加引号并不会改变从Facebook返回的结果的难度。

1

试试这个。这很简单。

$ str ='“'。$ str。'”';