2012-04-17 20 views
0

我想添加一个语言参数。假设用户点击英文,他只会收到英文推文。现在我使用的默认en,但我要为多语言使用PHP在tweet中添加语言参数

function twitter_class() 
{ 
    $this->realNamePattern = '/\((.*?)\)/'; 

    $this->searchURL = 'http://search.twitter.com/search.atom?lang=en&q='; 
} 

$ch= curl_init($this->searchURL . urlencode($q)); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 

我想从用户的语言输入的支持。

回答

3

您可以searchURL一些参数化的字符串函数:

$this->searchURL = function($language, $query) { 
    $vars = array_map('urlencode', func_get_args() + array('', ''));   
    return vsprintf('http://search.twitter.com/search.atom?lang=%s&q=%s', $vars); 
} 

当你调用它,像这样做:

$ch = curl_init($this->searchURL($lang, $q)); 

希望这是有帮助的。


如果你没有PHP 5.3,只是把它写为标准类功能:

class twitter_class 
{ 
    ... 

    function twitter_class() 
    { 
     $this->realNamePattern = '/\((.*?)\)/'; 
    } 

    function searchURL($language, $query) { 
     $vars = array_map('urlencode', array($language, $query)); 
     return vsprintf('http://search.twitter.com/search.atom?lang=%s&q=%s', $vars); 
    } 

    ... 

     $ch = curl_init($this->searchURL($lang, $q)); 
    ... 
} 
+0

我要争取代码 – 2012-04-17 12:25:07

+0

感谢名单:PHP解析错误 – 2012-04-17 15:29:59

+0

你需要PHP 5.3或更高的代码才能工作。如果您在下面,请使用匿名方式创建一个已命名的功能。 – hakre 2012-04-17 15:31:10

0
function twitter_class($lang="en") 
{ 
    $this->realNamePattern = '/\((.*?)\)/'; 

    $this->searchURL = 'http://search.twitter.com/search.atom?lang='.$lang.'&q='; 

} 
+0

@ pogeybait-它不工作得到错误未正确解析。 – 2012-04-17 12:25:58