2012-04-26 67 views
0

我想访问一些使用卷曲的非拉丁字符的网址,问题是当我访问我没有得到任何回应。我的浏览器没有问题访问他们,我检查了字符串转换,似乎我正在访问 “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得到卷曲

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

看起来您正在访问来自瑞典的linkedin。这就是为什么你被重定向到se.linkedin.com。要按预期方式转换URL,您可以在动态url部分上应用urlencode(),如以下示例所示:j-rgen-a-tr-ff/7/606/68a。

它应该工作。

+0

我的坏我没有注意到他们已经返回头的位置,我期待着HTML重定向。 – Evan 2012-04-26 08:49:48