Auteur | Message |
---|---|
radins
| Inscrit le : 09/05/2005 |
# Le 20/03/2006 à 17:05 J'essaie de vérifier si une url est "valide" non en testant avec une regexp (je n'en ai pas trouvé de valides dans 100% des cas) mais en vérifiant s'il existe une page derrière cette url.. j'ai donc trouvé/écrit ça:
Ça marche à peu près bien sauf si j'essaie de tester une url d'un domaine non-existant style http://www.sdfsdfsdfsdfsfsd.fr - du coup ça me retourne 302 ... (cela dit avec un http://www.sdfsdfsdfsdfsfsd.fr/machin.htm ça marche..) A votre avis c'est quoi le meilleur moyen de vérifier si sous une url existe une page? |
MathieuC
| Mathieu Inscrit le : 15/07/2005 |
# Le 20/03/2006 à 18:07 L'idee est bonne, et tu ne pourras pas mieux tester que comme ca radins a dit : Ça marche à peu près bien sauf si j'essaie de tester une url d'un domaine non-existant style http://www.sdfsdfsdfsdfsfsd.fr - du coup ça me retourne 302 ... (cela dit avec un http://www.sdfsdfsdfsdfsfsd.fr/machin.htm ça marche..) Ca ca doit etre du a Curl qui doit avoir un comportement bizarre si le NDD n'existe pas. Peut etre que tu devrais faire une requete DNS avant ton test (mais ca l'alourdi) pour eviter que curl te "mente". |
PyRoFlo
| Florent Inscrit le : 09/05/2005 |
# Le 21/03/2006 à 17:59
Mon framework a dit: /** * * Fonction qui teste l'existence d'une URL passée en paramètre. * * @param url URL à tester. * * @return true si l'adresse existe sinon false. * */ function urlExists($url) { $url = preg_replace('#^http:#i','',$url); if (preg_match('#^//#', $url)) { @list(,,$domain,$file) = explode('/',$url, 4); $file = '/'.$file; } else { return ''; } $fId = @fSockOpen($domain,80); if (!$fId) { return ''; } fputs($fId,"HEAD ".$file." HTTP/1.0\r\nHost: ".$domain."\r\n\r\n"); $head = fRead($fId, 4096); fClose($fId); return preg_match('#^HTTP/.*\s+200\sOK\s#i',$head); } |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 21/03/2006 à 18:37 A priori c'était un problème de DNS... qui faisait pointer tous les domaines invalides sur une de mes machines |
Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.
© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 3:23:49 | Généré en 5.47ms | Contacts | Mentions légales |