Salut a tous,
dans mon code j'ai une liste de lien. Je voudrais faire un test automatique qui me permettent de savoir si l'adresse indiqué n'est pas un lien mort (donc voir si la page existe).
Comment procéder?
merci d'avance
Salut a tous,
dans mon code j'ai une liste de lien. Je voudrais faire un test automatique qui me permettent de savoir si l'adresse indiqué n'est pas un lien mort (donc voir si la page existe).
Comment procéder?
merci d'avance
Non ca ne marche pas.
Par exemple si je fait :
Il me dit non!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if(file_exists('http://www.google.fr')) { echo 'oui'; } else { echo 'non'; }
Renseigne toi au sujet de CURL. J'ai pris connaissance de cette librairie hier soir seulement en lisant un article dans un magasine Linux acheté la veille. Je pense qu'elle permet de faire beaucoup avec les pages web en fonction des URLs et donc peut-être avec la validité des liens.
L'extension Curl peut sûrement répondre à votre question : elle est paramètrable à souhaits ou presque (récupération des en-têtes et/ou du contenu de la page). Avec la récupération des en-têtes on peut obtenir le code d'erreur HTTP. Par contre elle demande un peu plus de programmation et est peut être un peu plus lourde.
Dans le même genre d'idée on a la fonction fsockopen mais peu pratique.
Julp.
Edit : grillé
La solution file_exists n'est pas très adaptée au problème. file_exists teste l'existence d'un fichier et donc il faut absolution lui donner un fichier en paramètre. Les urls ne contenant pas de fichier spécifique, comme google.fr seront considérés comme inexistant.
Pour finir je conseil la solution Curl donnée plus haut qui sera beaucoup plus simple qu'autre chose.
Oki merci a tous, je vais donc me renseigner sur cette fonction.
J'ai regardé sur fr.php.net les info sur la librairie curl, mais je n'ai pas réussi à trouver les infos necessaires pour arriver à faire ce que je voulais.
Effectivement file_exists ne fonctionne pas, pourtant fopen marche sans donner un nom de fichier exact :
J'aurais pensé que file_exists fonctionnait exactement pareil mais apparement non
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function ping($url) { $f = @fopen($url, "r"); if ($f === FALSE) { return FALSE; } else { fclose($f); return TRUE; } } var_dump(ping("http://www.google.com/")); var_dump(ping("http://www.google.com/blabla"));
Evidement avec curl tu auras probablement plus d'options, comme par exemple la durée de timeout etc...
Sinon si curl n'est pas installé y a toujours les sockets... .. .
@ tchaOo°
ps :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function ping($url) { $f = @fopen($url, "r"); @fclose($f); return is_resource($f); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager