2012-04-26 9 views
0

私はcurlを使用して非ラテン文字でURLを訪問しようとしていますが、問題は私が訪問したときに応答がないことです。私のブラウザには問題はありません。私は文字列の変換をチェックしました。訪問しているようです。 "http://www.linkedin.com/pub/j-rgen-a-tr-ff/7/606/68a" 私のブラウザが訪問している間 "http://se.linkedin.com/pub/j%C3%B6rgen-a-tr%C3%A4ff/7/606/68a" カールが成功するようにその文字列を変換するにはどうすればいいですか? ?Utf-8 url get curl

function hitFormGet($loginURL, $loginFields, $referer,$cookieString) 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); 

    //curl_setopt($ch, CURLOPT_AUTOREFERER,   true); 
    curl_setopt($ch, CURLOPT_COOKIESESSION,   true); 
    //curl_setopt($ch, CURLOPT_COOKIE,$cookieString); 
    curl_setopt($ch, CURLOPT_FAILONERROR,   false); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,  false); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch'); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT,   true); 
    curl_setopt($ch, CURLOPT_HEADER,    false); 
    //curl_setopt($ch, CURLOPT_POST,     true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,  true); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,  30); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"); 

    curl_setopt($ch, CURLOPT_URL, $loginURL.$loginFields); 

    curl_setopt($ch, CURLOPT_REFERER, $referer); 

    //curl_setopt($ch, CURLOPT_POSTFIELDS, $loginFields); 
    $ret = curl_exec($ch); 
    curl_close($ch); 
    return $ret; 
} 


$res=hitFormGet("http://se.linkedin.com/pub/j%C3%B6rgen-a-tr%C3%A4ff/7/606/68a","","",""); 

答えて

2

スウェーデンからリンクンジンにアクセスしているようです。そのためse.linkedin.comにリダイレクトされます。期待どおりにURLを変換するには、j-rgen-a-tr-ff/7/606/68aの例のように、動的URL部分にurlencode()を適用することができます。

これはうまくいくはずです。

+0

私の悪い私は彼らがヘッダーの場所を返していたことに気付かなかった、私はHTMLのリダイレクトを期待していた。 – Evan