2008-10-30 5 views
3

Quel est le meilleur moyen de vérifier si un URL donné pointe vers un fichier valide (c'est-à-dire qu'il ne renvoie pas un 404/301/etc.)? J'ai un script qui va charger certains fichiers .js sur une page, mais j'ai besoin d'un moyen de vérifier chaque URL qu'il recueille dans un fichier valide.Fonction is_file() équivalente pour les URL?

Je continue de fouiller dans le manuel PHP pour voir quelles fonctions de fichiers (le cas échéant) fonctionneront réellement avec les URL distantes. Je vais éditer mon post comme je trouve plus de détails, mais si quelqu'un a déjà été en bas de ce chemin, n'hésitez pas à entrer.

Répondre

5

Le file_get_contents est un peu le but que remise des gaz, il suffit d'avoir l'en-tête HTTP pour prendre la décision, de sorte que vous aurez besoin d'utiliser une boucle pour le faire:

<?php 
// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_NOBODY, 1); 

// grab URL and pass it to the browser 
curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 
?> 
0

un tel moyen serait de demander l'URL et d'obtenir une réponse avec un code d'état de 200 En dehors de cela, il n'y a vraiment pas de bonne solution car le serveur a la possibilité de gérer la requête comme il l'entend (y compris vous donner d'autres codes d'état pour les fichiers existants, mais vous n'y avez pas accès pour plusieurs raisons) .

0

Si les wrappers fopen ne sont pas activés sur votre serveur (aucun serveur avec une sécurité correcte ne le sera pas), vous devrez utiliser le CURL functions.

Questions connexes