2012-08-04 63 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。'」';