2011-10-21 11 views
3

il y a un fichier, son nom contient un espace vide. ex) bonjour je suis bonne.zipcurl avec l'espace vide url

J'essaie de lire le fichier en utilisant curl.

donc, l'URL doit ressembler à ceci:

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

mais, boucle ne peut pas semble lire ce genre de noms de fichiers. car l'URL n'est pas au bon format. Alors, y a-t-il une autre façon de lire le fichier en utilisant curl? Ou quelques options que je ne connaissais pas?

Le serveur lang est php. et mon code est boucle ci-dessous:

$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; 

Répondre

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

Je pensais que c'était un problème lié à l'espace, mais j'étais incertain. Seuls les fichiers avec des espaces dans leurs noms de fichiers n'ont pas été téléchargés. Je vous remercie. – machineaddict

1

Là où jamais il y a une utilisation space%20, qui devrait faire l'affaire, je l'espère.

il deviendra:

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

Cela devrait faire l'affaire.

Espérons que cela aide.

2

essayer d'utiliser urlencode('http://domain.com/hello I am good.zip'); ou http://domain.com/'.urlencode('hello I am good.zip');