begin process at 2012 05 28 16:05:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Analyse d'une url


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Analyse d'une url

mardi 6 janvier 2009 à 18:06:23 | Analyse d'une url

ddolku

Bonjour ,

Je désire ajouter en php une analyse d'url sur ma base de donnée.

j'ai des url a analysé qui sont soit , 200 OK ou en 302 Found .

je souhaite faire un code qui puisse me dire quelles sont les adresse valide 200 et non valide 302.

Merci pour votre aide precieuse.

Cordialement
mardi 6 janvier 2009 à 20:52:22 | Re : Analyse d'une url

Teclis01

peut etre ceci ...
http://fr.php.net/curl

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

mardi 6 janvier 2009 à 21:22:27 | Re : Analyse d'une url

kohntark

Membre Club

Salut,

302, non valide ??

Bon ok, j'imagine que tu la désigne comme telle pour des raisons particulières, mais un code 302 est valide et abouti.

Comme Teclis, je pense que curl est la meilleure solution ... quand je pense qu'il y a peu j'ai codé un robot d'indexation qu'avec les sockets

Jette notamment un oeil aux options curl : CURLOPT_NOBODY et CURLOPT_HEADER

Cordialement,


Kohntark -

mardi 6 janvier 2009 à 21:26:34 | Re : Analyse d'une url

ddolku

Merci beaucoup , pour vos deux réponse .
mais je suis débutant et je ne comprend pas tellement les informations données dans ce lien.

Je ne veux pas être fénéant , mais je ne m'en sort pas et m'arrache même les cheveux , car je ne trouve pas la solution.

Pouvez vous m'aider encore un peux !

Merci
mardi 6 janvier 2009 à 22:20:24 | Re : Analyse d'une url

kohntark

Membre Club
La solution est :
Fais comme moi, et beaucoup d'autres, lis, teste, arrache toi les cheveux, c'est comme cela qu'on avance.

Un exemple tout bête :
$url = 'http://www.phpcs.com/forum/';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_NOBODY, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 45);
$t = curl_exec($curl);
echo $t;

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 -

mardi 6 janvier 2009 à 23:44:19 | Re : Analyse d'une url

ddolku

voici mon code , merci infiniment.


<?php

$url = 'http://www.phpcs.com';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_NOBODY, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 45);
$t = curl_exec($curl);
?>
<?php
if (preg_match("#^HTTP/1.1 200#", $t))
{
echo 'VRAI';
}
else
{
echo 'FAUX';
}
?>

mercredi 7 janvier 2009 à 00:28:52 | Re : Analyse d'une url

kohntark

Membre Club
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 ...)


Bonne continuation,


Kohntark -

mercredi 7 janvier 2009 à 00:35:22 | Re : Analyse d'une url

kohntark

Membre Club

Une dernière chose :
Puisque tu sembles tester plusieurs url, jette un oeil à curl_multi_init, tu gagnera un temps d'exécution phénoménale.

Cordialement,

Kohntark -

dimanche 25 janvier 2009 à 20:32:26 | Re : Analyse d'une url

Dadanaute

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 ?

Merci d'avance
David


lundi 26 janvier 2009 à 15:58:17 | Re : Analyse d'une url

kohntark

Membre Club
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.



Kohntark-

1 2

Cette discussion est classée dans : url, valide, analyse


Répondre à ce message

Sujets en rapport avec ce message

Convertir une chaine en une url valide. [ par cz1702 ] Bonjour à tous,Existe-t-il une fonction en PHP permettant de convertir les caracatères ASCII en caracères HTTP valide?exemple : les " en %22Merci d'av insertion d'un lien dans une base de donnee [ par mehdisfr ] SalutMon probleme c que je veux inserer un lien dans une base de donnee. j'ai essayer comme si dessous mais ca ne marche pas.$text = '[url=http://www. URL rewriting simple problème [ par bricethenetman ] Bonjour, je viens de trouver cette source http://www.phpcs.com/code.aspx?ID=33296 mais je n'arrive pas à la configurer (je débute en url rewriting et Parseur pour afficher le RK (futur pagerank) de la Google toolbar [ par LaurentKOogar ] Bonjour,J'ai mis sur mon site ce code : [Place dans une variable le PageRank de votre site de la toolbar de Google]<A href="http://www.phpsources.org/ url rewriting [ par titeuf974 ] bonjour,je souhaierai 'rewriter', les pages du livre de mon site. je souhaiterai passer de la structure suivante :www.monsite.com/guestbook.php?lang=f Passer un tableau dans l'url [ par thegirlnet ] BonjourVoila, j'ai un tableau de valeur en php, et je voudrais le faire passer dans l'url pr le récupérer lorsque la page va etre rechargé.J'ai utilis [Cursor:wait] personnalisation [ par elidris ] Bonjour à tous,Après avoir longuement chercher je ne trouve pas comment changer le curseur "wait" par un curseur perso !!!!voilà une partie de mon cod Bloquer URL [ par Clad49 ] SalutJ'aurai voulu savoir si il été possible de bloquer une url dans la case adresse afin que les utilisateur ne puisse voir ce qui se passe lorsque l php frame et url [ par gabs77 ] bonjour, jai un pbje suis entrain de faire un site qui comporte 2 frames dont 1 subdivisé en 3 framesune frame a gauche pour le menuune frame a droite découper une Adresse URL [ par kangoo75 ] Bonjour, j'aimerais savoir comment récuperer les parametres d'une URL d'une page courante ( c'est à dire la page ou je lance le script), par exemple s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales