0

言語パラメータを追加したい。ユーザーが英語をクリックすると、英語でのみツイートが表示されます。現在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']);

ユーザーから言語入力を取得したい。

4

2 に答える 2

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));
    ...
}
于 2012-04-17T12:03:18.547 に答える
0
function twitter_class($lang="en")
{
    $this->realNamePattern = '/\((.*?)\)/';

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

}
于 2012-04-17T12:11:48.263 に答える