Donnera :
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 71313
Content-Type: text/html; charset=iso-8859-15
Server: Microsoft-IIS/7.0
Set-Cookie: ASP.NET_SessionId=1ljck54530w0qp45541hai55; path=/; HttpOnly
p3p: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Tue, 06 Jan 2009 21:14:11 GMT
Connection: close
A partir de ce résultat il est très facile de trouver le "200" avec une regex basique.
Je te laisse le soin de te renseigner sur les fonctions curl que j'utilise dans cet exemple.
Cordialement,
Kohntark -
Vous n’avez pas trouvé la réponse que vous recherchez ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 7 janv. 2009 à 00:28
cool, t'as encore des cheveux ??
Par contre, gaffe à ta regex, tu peux très bien avoir des choses comme ça :
HTTP/1.0 200 OK
... et là tu retournera FAUX alors qu'elle est valide.
Et pour le CURLOPT_TIMEOUT, si tu n'as qu'une url à la fois a analyser, tu peux baisser la valeur, par exemple 10 secondes (ce qui fait déjà beaucoup) Ça te permettra de ne pas attendre une éternité si une url n'existe pas.
Par ailleurs il y a un très gros problème dans ton code : fallait bien que j'en rajoute.
Au risque de ne pas mettre bien fait comprendre je répète : tout dépend de ce que tu souhaites faire.
.. mais imagine le test de http://blogs.codes-sources.com/MainFeed.aspx Ton code va retourner FAUX, alors que l'url aboutie.
Pourquoi ?
Parce que la réponse du serveur est celle ci :
HTTP/1.1 302 Found
Date: Tue, 06 Jan 2009 23:03:16 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
CommunityServer: 2.1.61019.2
Location: http://feeds.feedburner.com/BlogsCodes-sources Cache-Control: private
Content-Length: 0
HTTP/1.0 200 OK
Date: Tue, 06 Jan 2009 23:04:08 GMT
Server: Apache
X-FB-Host: app81
Last-Modified: Tue, 06 Jan 2009 21:53:26 GMT
ETag: 97zJ5jXFw7tOMnekeUbyEV8Bp14
Content-Length: 67193
P3P: CP="ALL DSP COR NID CUR OUR NOR"
Keep-Alive: timeout=30, max=100
Connection: keep-alive
Content-Type: text/xml;charset=utf-8
blablabla la page existe mais redirige temporairement ton browser sur une autre adresse. Avec ta regex tu ne détectera pas le HTTP/1.0 200 de part le ^ (et le "0", mais je l'ai déjà dit)
En bref, si tu veux faire une réelle analyse d'url, il te faut impérativement traiter tous les codes de réponses HTTP, sans quoi tu auras forcement de mauvais résulats.
N'hésite pas à poster tes codes si tu décides de les améliorer. Ca m'intéresse, je développe depuis 2/3 jours un robot d'analyse de liens qui a pour but l'analyse des liens présents sur un site donné (réponse HTTP, liens morts, temps d'accès, etc ... etc ...)
Dadanaute
Messages postés2Date d'inscriptionjeudi 23 octobre 2008StatutMembreDernière intervention 8 février 2009 25 janv. 2009 à 20:32
Salut à tous,
j'utilise se script il est géniale mais je voudrais faire un fonction en plus et savoir si vous savez comment réaliser sa.
en faite je fourni a mes partenaire un lien de parrainage et je voulais savoir si il y avais moyens par ce scripte qu'il me confirme que se lien est bien présent sur les site en partenariat ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 26 janv. 2009 à 15:58
Salut,
Oui, c'est quasiment la même chose, sauf qu'il faut supprimer :
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_NOBODY, 1);
et modifier la regex.
En plus il te faudra chercher dans tout le site du partenaire et là c'est un peu plus "chaud" car il y a de très nombreux moyens d'appeler une page.
Dadanaute
Messages postés2Date d'inscriptionjeudi 23 octobre 2008StatutMembreDernière intervention 8 février 2009 8 févr. 2009 à 12:27
Bonjour,
je suis désolé je n'arrive pas à comprendre comment faire
j'ai le code suivant :
<?php
$url = 'http://www.daceradio.com';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 45);
$t = curl_exec($curl);
?>
donc modifier comme tu ma marquer mais ma if je voudrais quel vérifie ce code présent sur mon site : royaltchat et je voudrais bien avoir la possibilité en luis modifiant en php les valeur des site ou il doit vérifier et les valeurs de la if pour pouvoir vérifier tous mes partenaires.