使用PHP在tweet中添加语言参数

时间:2012-04-17 11:59:58

标签: php tweets

我想添加一个语言参数。假设用户点击英语,他将只用英语发送推文。现在我默认使用en,但我希望支持多种语言

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']);

我想从用户那里获得语言输入。

2 个答案:

答案 0 :(得分: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));
    ...
}

答案 1 :(得分:0)

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

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

}