2010-07-19 4 views
0

Je vérifie pour voir si certains mp3 existent. Alors que parfois il n'y a pas de problème, certains fichiers mp3 valides sont affichés comme 404, pas trouvé. Voici le code que je utilise:cURL renvoie 404 sur un fichier existant (serveur distant). Pourquoi?

$ch = @curl_init($file_path); 
@curl_setopt($ch, CURLOPT_HEADER, true); 
@curl_setopt($ch, CURLOPT_NOBODY, true); 
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

@curl_exec($ch); 
$header = curl_getinfo($ch); 
curl_close($ch); 
echo "<pre>"; 
print_r($header); 
echo "<pre>"; 

Je pensais que le problème était parce que les sites utilisaient réoriente, mais le réglage « CURLOPT_FOLLOWLOCATION » TRUE n'a pas résolu le problème.

Le code http montre 404 sur les mp3 suivants. Vous pouvez aller à eux dans votre navigateur et voir qu'ils fonctionnent. Ce ne sont que quelques exemples pris au hasard de beaucoup qui ont ce problème:

http://audio.arjlover.net/audio/pesni/Babies_go_series/Babies%20Go%20Beatles/01%20Hey%20Jude%20Beatles.mp3

http://www.dagatinha.com.br/musicas/Lady%20Gaga%20%20-%20Just%20Dance.mp3

+2

Sur une note non liée, êtes-vous propriétaire des droits d'auteur sur ces fichiers musicaux? – DevSolar

+0

@DevSolar: Demandez-vous si l'utilisateur371699 est en réalité Lady Gaga? – webbiedave

+2

Lady Gaga utiliserait Ruby – stimms

Répondre

1

En gros:

@curl_exec($ch); 

Vous supposez exec'd boucle correctement et jeter sa valeur de retour. Si un problème est survenu lors de la requête, exec renvoie false et curl_error et curl_errno contiendront des informations de diagnostic sur ce qui a explosé et comment. Ne présumez jamais que le curl a réussi. Beaucoup trop de raisons d'échouer, mais seulement une façon de réussir. Au minimum, modifiez votre code à:

if (curl_exec($ch) === FALSE) { 
    die("Curl error: " . curl_error($ch)); 
} 

pour voir pourquoi les choses sont mortes. Autrement vous êtes juste parti avec des résultats bizarres et avez jeté toute chance de voir pourquoi ils se sont produits.

Questions connexes