2011-10-21 9 views
3

ファイルがあり、その名前に空白が含まれています。 ex)hello私はgood.zip空白のURLを持つカール

私はcurlを使用してファイルを読み取ろうとしています。

ので、URLは次のようにする必要があります:

http://domain.com/hello I am good.zip 

しかし、カールは、ファイル名のようなものを読んでいるようだができません。 URLが正しい形式ではないため、

したがって、curlを使用してファイルを読み取る別の方法はありますか? または私が知らなかったいくつかのオプションはありますか?

サーバーlangはphpです。 と私のカールコードは以下の通りです:

今までうまくいけば、トリックを行う必要があります space使用 %20、あります
$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
$data = curl_exec($ch); 
curl_close($ch); 
return $data; 

答えて

7
$url = str_replace(" ","%20",$url); // to properly format the url 

$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
$data = curl_exec($ch); 
curl_close($ch); 
return $data; 
+0

私はそれがスペースに関連する問題だと思っていましたが、わかりませんでした。ファイル名に空白が含まれているファイルのみがダウンロードされました。ありがとうございました。 – machineaddict

1

ので、それはなります:

http://domain.com/hello%20I%20am%20good.zip 

は、これがうまくいけば、トリックを行います。

これが役に立ちます。

2

urlencode('http://domain.com/hello I am good.zip'); またはhttp://domain.com/'.urlencode('hello I am good.zip')を使用してみてください。