2014-04-24 49 views
-2

我想使用CURL從URL獲取詳細信息,它對正常字符URL的工作正常。但是,其中一個網址包含特殊字符,如'ó'。如果URL包含特殊章程,CURL不返回任何東西

我的URL示例如下:

http://www.abc.com/aóvek-xyz-pqr/1/8/ 

我的PHP代碼:

$ch = curl_init($my_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
$content = curl_exec($ch); 
+0

使用$ my_url的urlencode。 另外:http://stackoverflow.com/questions/10329718/utf-8-url-get-with-curl –

+0

該URL不存在,可以爲您提供一個工作URL這樣?那我們可以測試一下嗎? –

+0

@ПавелИванов我也試過urlencode它沒有工作 – Elby

回答

2

嘗試使用以下(從urlencode only the directory and file names of a URL拍攝):

$encoded_url = preg_replace_callback('#://([^/]+)/([^?]+)#', function ($match) { 
       return '://' . $match[1] . '/' . join('/', array_map('rawurlencode', explode('/', $match[2]))); 
      }, $my_url); 

$ch = curl_init($encoded_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
$content = curl_exec($ch); 
+0

感謝它的工作正常 – Elby

0

試試這個

 
function get_web_page($url) 
    {    
      $options = array(
      CURLOPT_RETURNTRANSFER => true, 
      CURLOPT_HEADER   => false, 
      CURLOPT_FOLLOWLOCATION => true, 
     ); 

     $ch  = curl_init($url); 
     curl_setopt_array($ch, $options); 
     $content = curl_exec($ch); 
     curl_close($ch); 

     return $content; 
} 

echo get_web_page("http://en.wikipedia.org/wiki/ó");