begin process at 2010 03 19 12:56:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > VERIFIER SI UN LIEN (OU UNE CHAINE DE CARACTERES) EST PRESENT DANS LE CONTENU D'UN SITE.

VERIFIER SI UN LIEN (OU UNE CHAINE DE CARACTERES) EST PRESENT DANS LE CONTENU D'UN SITE.


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :Liens retour, chaines caracteres, implode Niveau :Débutant Date de création :25/02/2009 Date de mise à jour :26/02/2009 15:08:22 Vu / téléchargé :2 332 / 110

Auteur : giloum

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Bonjour, je suis nouveau sur ce site et c'est la première fois que je poste une source ...
Fonction permettant de vérifier la présence d'un lien (pour mon utilisation) ou d'une chaîne de caractères sur l'ensemble des pages d'un site.

Source

  • <?php
  • // Function permettant de verifier l'existance d'un lien retour situé sur une page accesible depuis la page d'acceuil
  • // d'un nom de domaine precis
  • // $page_source = le nom de domaine sur lequel on souhaite effectué la rechercher ex:"http://nomdusite.com"
  • // $lien_a_verifier = le lien ou la chaine de caracteres a recherché ex:"nomdusite.com"
  • function check_lien_retour($page_source,$lien_a_verifier)
  • {
  • //Chargement du contenu de la page dans une variable
  • $page = file_get_contents($page_source);
  • //Recherche une chaine terminant par: .htm ou .html ou .php ou .asp ou .aspx
  • // et ne contenant que des caracteres autorisé dans une url
  • $regex = '#';
  • $regex .='[\+%\/a-z0-9._-]+\.php'; // pour l'extention php
  • $regex .='|[\+%\/a-z0-9._-]+\.html'; // pour l'extention html
  • $regex .='|[\+%\/a-z0-9._-]+\.aspx'; // pour l'extention aspx
  • $regex .= '#i';
  • preg_match_all($regex,$page,$resultat,PREG_PATTERN_ORDER);
  • // creation du regex de la chaine a verifier
  • $lien_a_verifier="#".$lien_a_verifier."#i";
  • // Affiche les liens situé sur la page d'acceuil vers d'autre pages
  • echo '<textarea rows="20" cols="50" >';
  • print_r($resultat);
  • echo '</textarea><br/>';
  • //Listage des liens trouvés
  • foreach ($resultat[0] as $liens)
  • {
  • // Donne l'URL exacte de la page a verifier
  • $liens=$page_source."/".$liens;
  • //echo $liens."<br/>";
  • // Verifie l'existence d'une chaine de caracteres comprenant le lien a verifier
  • $page0 = implode("", file($liens));
  • if(preg_match($lien_a_verifier ,$page0))
  • {
  • // Si la chaine existe
  • $url_presente=true;
  • $url_page_du_liens = $liens;
  • }
  • }
  • if($url_presente==true)
  • {
  • echo 'lien présent sur le site: <a href="'.$page_source.'" target="_blank">'.$page_source.'</a> sur cette page: <a href="'.$url_page_du_liens.'" target="_blank">'.$url_page_du_liens.'</a><br/>';
  • }
  • else
  • {
  • echo 'lien absent sur le site: <a href="'.$page_source.'" target="_blank">'.$page_source.'</a><br/>';
  • }
  • }// Fin de la function
<?php

// Function permettant de verifier l'existance d'un lien retour situé sur une page accesible depuis la page d'acceuil 
// d'un nom de domaine precis
// $page_source = le nom de domaine sur lequel on souhaite effectué la rechercher ex:"http://nomdusite.com"
// $lien_a_verifier = le lien ou la chaine de caracteres a recherché ex:"nomdusite.com" 

function check_lien_retour($page_source,$lien_a_verifier)
{
	//Chargement du contenu de la page dans une variable
	$page = file_get_contents($page_source);
	
	//Recherche une chaine terminant par: .htm ou .html ou .php ou .asp ou .aspx
	// et ne contenant que des caracteres autorisé dans une url
	
	$regex = '#';
	$regex .='[\+%\/a-z0-9._-]+\.php'; // pour l'extention php
	$regex .='|[\+%\/a-z0-9._-]+\.html'; // pour l'extention html
	$regex .='|[\+%\/a-z0-9._-]+\.aspx'; // pour l'extention aspx
	$regex .= '#i';

	
	preg_match_all($regex,$page,$resultat,PREG_PATTERN_ORDER);
	
	// creation du regex de la chaine a verifier
	$lien_a_verifier="#".$lien_a_verifier."#i";
	
	// Affiche les liens situé sur la page d'acceuil vers d'autre pages
	 echo '<textarea rows="20" cols="50" >';
	 print_r($resultat);
	 echo '</textarea><br/>';

	//Listage des liens trouvés
	foreach ($resultat[0] as $liens) 
		{
			// Donne l'URL exacte de la page a verifier
			$liens=$page_source."/".$liens;
			//echo $liens."<br/>";
			// Verifie l'existence d'une chaine de caracteres comprenant le lien a verifier
			$page0 = implode("", file($liens));
			
			
			if(preg_match($lien_a_verifier ,$page0))
				{ 
					// Si la chaine existe
					$url_presente=true;
					$url_page_du_liens = $liens;
				} 
			
			
		}
	if($url_presente==true)
				{ 
					echo 'lien présent sur le site: <a href="'.$page_source.'" target="_blank">'.$page_source.'</a> sur cette page: <a href="'.$url_page_du_liens.'" target="_blank">'.$url_page_du_liens.'</a><br/>'; 
				} 
			else 
				{ 
					echo 'lien absent sur le site: <a href="'.$page_source.'" target="_blank">'.$page_source.'</a><br/>'; 
				}

}// Fin de la function

 Conclusion

N'hésitez pas a me donner des conseils pour améliorer ce script qui est, je pense, loin d'être parfait.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 février 2009 13:17:21 :
Correction de l'orthographe ...
26 février 2009 15:08:22 :
Correction du code grace a l'aide de neigedhiver

 Sources du même auteur

Source avec Zip Source avec une capture DIAPORAMA AVEC AJOUT ET REDIMENSIONEMENT DE PHOTOS, CRÉATION...

 Sources de la même categorie

Source avec une capture PAGINATION EN PHP par Orangina
Source avec Zip POO - DEBUGGER par DiGhan
Source avec Zip CRAWLER DE SITE EN PHP par Mcjo
DÉCOUPAGE D'UN TEXTE EN FONCTION DES SAUTS DE LIGNES par biloubil
RÉCUPÉRER LE CHEMIN RELATIF D'UN OBJET PAR RAPPORT À LA RACI... par FredPsy

Commentaires et avis

Commentaire de aKheNathOn le 25/02/2009 16:40:11 10/10

Salut giloum,

Puisque tu est nouveau je te souhaite la bienvenue sur PHPCS :)

Ta source est très utile et je t'encourage à continuer sur la voie du partage.

Bonne prog à toi,
akh

PS : J'ai noté 10 pour t'encourager et aussi car y'à rien à dire (critique) sur ta source. Bonne continuation

Commentaire de neigedhiver le 25/02/2009 21:05:33

Salut,

Moi j'ai pour habitude de ne pas noter...
Mais j'ai quelque chose à dire ^^

Ligne 22 tu utilises ereg() : c'est dommage, parce que preg_match() est beaucoup plus performant à motif équivalent. C'est d'autant plus 'important' que tu l'utilises dans une boucle et que tu ne sais pas combien de fois elle va être exécutée.
Et même, pour aller encore plus vite, comme tu veux juste vérifier la présence d'une simple chaîne de caractère dans une autre, l'utilisation de strpos() serait encore plus judicieuse.

Autre petit truc : tu utilises une variable $url_presente, qui n'est pas définie si le lien n'a pas été trouvé. PHP déclenchera une erreur de type notice, qui s'affichera si error_reporting() n'est pas à 0. Et au lieu d'utiliser une chaîne dans la variable, autant utiliser un booléen (true/false), dont c'est justement l'utilité ici (un peu plus performant, surtout si le test est effectué avec === ).

Bon ce ne sont que des détails qui ne remettent pas en question la méthode ;)

Commentaire de LaurentKOogar le 26/02/2009 10:52:29

faudrais commencer par verifier si la page est en ligne, curl est ton ami :)

Commentaire de giloum le 26/02/2009 15:17:21

Bonjour LaurentKOogar, je viens de voir ton message ... De ce que je viens de voir sur google curl() est une fonction permettant de vérifier si une url est en ligne, c'est ça ???
Mais je viens de découvrir que mon script a des limites (de très grandes limites :-( ), pour le moment il ne prend pas en compte les url composées (comme par exemple /blabla.php?lg=fr&...)
En plus je n'ai pas encore réussi a faire la liste des liens contenue sur une autre page que la page d'accueil ...
Mais ça va venir, enfin j'espère.
Avez vous une idée de toutes les extension d'une page (pouvant être lu par un navigateur) possible ???
Merci encore de votre aide.
Giloum.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

PB implode Explode [ par Jey101 ] je souhaite enregistrer differentes valeurs dans un champ de base de données, pour cela je voudrais utiliser une fonction implode(). le truc est que j implode et base de données [ par yravas ] Bonjour, J'ai r&#233;alis&#233; un calendrier o&#249; l'utilisateur choisit le mois et l'ann&#233;e qu'il veut. Ce calendrier est en r&#233;alit&#233; implode et cookies : qqun peut m'aider siouplé [ par CoChOnOu ] hello &#224; tous,voil&#224;, je vouvrais r&#233;cup&#233;rer le code source d'une page sur un site via la fonction "implode". Jusqu'&#224; pr&#233;se Petit problème implode [ par XFranck ] Bonjour, je d&#233;bute en php et voici mon probl&#232;me :&lt;?phpinclude("php/login.php");$P_Check_GorM = $_POST['F_Check_GorM'];$SQL = "SELECT memb implode / explode [ par fredo35m ] Bonjour,je souhaite pouvoir récupérer l'ensemble du resultat d'un requete dans une liste!! comment puis-je faire cela ???j'ai pensé à implode et explo Fonction Implode [ par sbach73 ] Bonjour,J'ai actuellement un problème que ne n'arrive pas à résoudre.J'aimerai pouvoir faire une fonction qui m' implode avec plusieurs séparateurs un Recursivité implode [ par alex2100 ] Bonjour à tous,Bon voila je fait un implode sur un fichier voici le code $source1 = implode ('', file ("text.htm")); $source1 = strstr($source1, '/&gt


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,874 sec (4)

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