begin process at 2012 05 27 20:51:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > VÉRIFICATION DES URL VALIDE AVEC PHP

VÉRIFICATION DES URL VALIDE AVEC PHP


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :curl, vérifier, url, valide, php Niveau :Débutant Date de création :08/02/2011 Vu :3 276

Auteur : dilar

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

script vérifiant si une URL pointe vers une page vraiment valable. il affiche les status des pages(404, 403...)  Il utilise la librairie CURL

Source

  • <?php
  • function verif_url($url = NULL)
  • {
  • if($url == NULL) return false;
  • $ch = curl_init($url);
  • curl_setopt($ch, CURLOPT_TIMEOUT, 10); //Temps maximal d'exécution
  • curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //Durée maximale de la tentative d'établissement de la connexion vers l'hôte distant
  • curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Avec la valeur TRUE, le contenu de la page distante est retourné sous la forme d'une chaîne par la fonction curl_exec. La valeur par défaut FALSE a pour effet d'en afficher directement la sortie.
  • $data = curl_exec($ch); //Exécute la session cURL
  • $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); //Code HTTP de la dernière réponse reçue. La valeur sera nulle si aucune réponse n'a (encore) été reçue.
  • curl_close($ch);
  • // show on console::
  • if($httpcode == 200)
  • echo $url." :: exists".$httpcode.PHP_EOL;
  • else if($httpcode == 301)
  • echo $url." :: removed permanetly".$httpcode.PHP_EOL;
  • else if($httpcode == 302)
  • echo $url." :: removed temporary".$httpcode.PHP_EOL;
  • else
  • echo $url." :: not exists :: ".$httpcode.PHP_EOL;
  • return in_array($httpcode, array(200, 301, 302));
  • }
  • $html = '<a href="www.exemple.com">
  • <img src="http://images.mximg.com/mdnh/sitebox/splash/Travel/Travel19147020.jpg"/>
  • </a>
  • <a href="www.exempleinvalide.com">url invalide</a>';
  • // verifier les url des liens
  • $RegA = '#<[aA](\s)*(href|HREF)(\s)*=(\s)*[\"|\'](.*?)[\"|\'](.*?)>#is';
  • preg_match_all($RegA, $html ,$Results,PREG_PATTERN_ORDER);
  • foreach ($Results[5] as $url)
  • {
  • verif_url($url);
  • echo "<br>";
  • }
  • // verifier les sources des images
  • $RegImg = '/<img [^>]*src=["|\']([^"|\']+)/i';
  • preg_match_all($RegImg , $html, $matches);
  • foreach ($matches[1] as $key=>$url)
  • {
  • verif_url($url);
  • }
  • ?>
<?php 
	function verif_url($url = NULL)  
	{
		  
	    if($url == NULL) return false;
	      
	    $ch = curl_init($url);  
	    curl_setopt($ch, CURLOPT_TIMEOUT, 10);  //Temps maximal d'exécution
	    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //Durée maximale de la tentative d'établissement de la connexion vers l'hôte distant
	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Avec la valeur TRUE, le contenu de la page distante est retourné sous la forme d'une chaîne par la fonction curl_exec. La valeur par défaut FALSE a pour effet d'en afficher directement la sortie.
	      
	    $data		= curl_exec($ch);  //Exécute la session cURL 
	    $httpcode	= curl_getinfo($ch, CURLINFO_HTTP_CODE); //Code HTTP de la dernière réponse reçue. La valeur sera nulle si aucune réponse n'a (encore) été reçue.
	      
	    curl_close($ch);
	    
	    // show on console::
	    if($httpcode == 200)
	    	echo $url." :: exists".$httpcode.PHP_EOL;
	    else if($httpcode == 301)
	    	echo $url." :: removed permanetly".$httpcode.PHP_EOL;
	    else if($httpcode == 302)
	    	echo $url." :: removed temporary".$httpcode.PHP_EOL;
	    else
	    	echo $url." :: not exists :: ".$httpcode.PHP_EOL;
	    
	    return in_array($httpcode, array(200, 301, 302));
	}
	
	$html =	'<a href="www.exemple.com">
				<img src="http://images.mximg.com/mdnh/sitebox/splash/Travel/Travel19147020.jpg"/>
			 </a>
			 <a href="www.exempleinvalide.com">url invalide</a>';
			 
	
	
	// verifier les url des liens
	$RegA = '#<[aA](\s)*(href|HREF)(\s)*=(\s)*[\"|\'](.*?)[\"|\'](.*?)>#is';
	preg_match_all($RegA, $html ,$Results,PREG_PATTERN_ORDER);  
	foreach ($Results[5] as $url)  
	{  
		verif_url($url);
		echo "<br>";
	}
	
	// verifier les sources des images
	$RegImg	=	'/<img [^>]*src=["|\']([^"|\']+)/i';
	preg_match_all($RegImg , $html, $matches);
	foreach ($matches[1] as $key=>$url) 
	{
		verif_url($url);
	}
	
?>

 Conclusion

ce script prend en entré un code html que vous pouvez le modifier au cours du test. il cherche les url des liens et des images et verifie leurs existances


 Sources du même auteur

CRÉER UNE IMAGE À PARTIR DU TEXTE
UPLOAD IMAGE AVEC MINIATURE

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
REDIMENSIONNEMENT D'IMAGE PHP par JStevens
Source avec Zip CREATED SOME TINY URL par ledamss
FONCTION GET EN PHP : RECUPERER UNE PAGE SUR UN SITE DISTANT par nax333

Commentaires et avis

Commentaire de cod57 le 09/02/2011 14:49:22

bonjour

si curl est activé sur le serveur bien sur !
quelques lignes de commentaires seraient souhaitables
ici par exemple foreach ($Results[5] as $url)

a++

Commentaire de cod57 le 09/02/2011 15:42:09 8/10

ma note

Commentaire de fenoril le 09/02/2011 16:40:31 9/10

Salut !

Nickel, encore des fonctionnalités que je découvre avec dilar. Merci !

Juste un bémol, ce script serait complet s'il permettait de simplement entrer une url (fonction fetch_url si je ne m'abuse), de récupérer le contenu avant de l'analyser.

Une fonction bien utile en tout cas pour l'admin.

P.S. : Pour ton autre source sur les texte en image, je t'ai envoyé une idée de code par mp...

Commentaire de hornetbzz le 14/02/2011 09:38:41

Bonjour

Très bonne idée, qui peut éviter qq liens morts sur les sites...
En idée d'amélioration, en admettant que la vérification soit réalisée sur des pages extérieures au serveur, encapsuler tout ce petit monde dans une classe, à laquelle tu pourrais ajouter quelques méthodes du style stocker les résultats en base de données afin de ne pas réitérer la vérification des liens/img "en double" ou avec une fréquence trop élevée.

Sinon j'ai un peu oublié les regex à la sauce php mais il me semble me rappeler que le modificateur "i" permet de s'affranchir d'écrire "href|HREF", redondant.
Et aussi à la volée, j'ai un gros doute sur l'efficacité de ta regex /<img [^>]*src=["|\']([^"|\']+)/i'; mais je n'ai pas vérifié. Par exemple avec <img style="foo" src="http://www.domain.org/img/truc.jpg" border="none"/>, ça ne marche pas. A revoir donc.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Vérifier une url en PHP qd je génére ma page [ par destiny ] Lo all :)Alors est-ce possible en php (qd je g&#233;n&#233;re ma page) de v&#233;rifier si l'URL est valide? histoire que je ne g&#233;n&#233;re pas d Chat à partir du login et mdp du forum [ par jmobylette ] Bonjour ! G un forum phpBB2 et je voudrais faire un chat à part mais en utilisant les mêmes pseudos et mdp ! J'ai donc fait un formulaire : http://jmo urlrewriting htaccess free [ par rockclimber ] Voila, je m'explique : J'aimerais que mon site chez free g&#232;re l'url-rewriting. Pour cela je passe par l'erreur 404, donc je redirige dans mon fi Transettre et récupérer une information via l'URL [ par mendevis ] Bonjour tout le monde, J'ai une page web, index.php, dans laquelle j'ai 2 champs : login et pass. Une fois les champs renseign&#233;s et valides, j' Boucle infinie avec curl_setopt et SSL!!! [ par malik7934 ] Hello, J'ai un probl&#232;me aga&#231;ant avec curl_setopt (je d&#233;bute dans le domaine). J'essaie de me connecter &#224; un site avec SSL. Voici Url [ par Toolsweb ] Salut, j'ai 13 ans et je viens tout juste de commencer le php. Ma question peut sembler stupide mais je la pose quand m&#234;me.Sur mon site, j'ai bea Headers (fct CURL) [ par malik7934 ] Hello,Depuis quelques temps, je bricole avec les fonctions CURL et j'adore &nbsp;mais j'ai un probleme Je cherche a recupere les heades que j'envoie q formulaire php partenaria [ par My_or ] Bonjour je d&#233;bute en php est je voudrait savoir si il est possible de creer un formulaire pour partenaria !!voici comment sa serais:Speudo:______ url's et tris [ par fluR ] Bonjour,Me posant bien des questions et commencant le php, je poste un thread vous demandant de m'&#233;claircir sur certaines choses concernant le tr Problen de redirection d'url [ par balmode ] salut Je cherche un script&nbsp; php/mysql&nbsp; capable de rediriger&nbsp; mes visiteurs a partir d'un url de forme : http://monsite/redirect.php?cod


Nos sponsors


Sondage...

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 : 0,624 sec (3)

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