Comment vérifier si un fichier existe à partir d'une url
J'ai besoin de vérifier si un fichier existe sur un serveur distant. À l'aide de is_file()
et file_exists()
ne fonctionne pas. Toutes les idées sur la façon de le faire rapidement et facilement?
- pourquoi ne pas travailler???
- Vous pouvez utiliser cette fonction getimagesize("url"); . Ref: php.net/manual/en/function.getimagesize.php
Vous devez vous connecter pour publier un commentaire.
vous devez utiliser CURL
echo is_url_exists('http://stackoverflow.com') ? 'Yes' : 'No';
échoYes
.Vous n'avez pas besoin de CURL pour ça... Trop de frais généraux pour juste envie de vérifier si un fichier existe ou pas...
Utilisation PHP get_header.
Ensuite vérifier si $result[0] contient 200 OK (ce qui signifie que le fichier est là)
Une fonction pour vérifier si une URL œuvres pourrait être ceci:
By default get_headers uses a GET request to fetch the headers
- donc, au lieu de la surcharge d'une demande curl (pas vraiment sûr de ce que la surcharge est désignée par qui) - il y a un gaspillage de la requête GET qui tombe le corps - au lieu d'utiliser une TÊTE de demande et de ne recevoir que les en-têtes.Je viens de trouver cette solution:
Source: http://www.dreamincode.net/forums/topic/11197-checking-if-file-exists-on-remote-server/
getimagesize
? Comme ici: uk1.php.net/getimagesize si oui, alors les docs disent qu'il peut faire référence à des fichiers locaux ou distants.If accessing the filename image is impossible getimagesize() will generate an error of level E_WARNING.
Salut selon notre test entre les 2 serveurs différents, les résultats sont comme suit:
utilisation de curl pour la vérification de 10 ans .les fichiers png (environ 5 mo) a été en moyenne de 5,7 secondes.
utilisant l'en-tête de vérifier pour la même chose a eu moyenne de 7,8 secondes!
Donc, dans notre test de roulage a été beaucoup plus rapide si vous avez à vérifier des fichiers plus volumineux!
nos curl fonction est:
voici notre en-tête de vérification de l'échantillon:
De faire une requête avec curl et voir si elle renvoie un code d'état 404. Faire la demande à l'aide de la TÊTE de la méthode de requête de sorte qu'il renvoie uniquement les en-têtes sans corps.
Vous pouvez utiliser la fonction file_get_contents();