Simple algorithme pour récuperer une chaine de caractere dans une page web

0/5 (12 avis)

Snippet vu 10 947 fois - Téléchargée 25 fois

Contenu du snippet

Je ne contribue pas beaucoup à ce site qui m'aide et je me suis dis que ma petite fonction pourrait etre utile.
Elle consiste a recuperer une chaine, dont on ne sais rien sur elle : Seulement les balises placées avant et après.
Ca est bien pratique pour des recherches à la volée, mais il y a mieux.

Source / Exemple :


<?php
function localise($link,$word,$word2) 
{
		$handle = fopen($link, "rb"); // On ouvre la page web
		$retour = '';
		while (!feof($handle)) {
		  $retour .= fread($handle, 8192); // On la tampone par paquets (obligé quand c'est un flux reseau)
		}
		fclose($handle);
		
 		$retour = strstr($retour, $word); // On supprime tout ce qui est avant $word1
		$retour = substr($retour, strlen($word)); // Y compris $word1
		$retour = strrev($retour); // On inverse tout ! : abcdef = fedcba
		$word2 = strrev($word2); // On inverse aussi la variable $word2
		$retour = strstr($retour, $word2); // On enleve tout ce qui est avant à nouveau
		$retour = substr($retour, strlen($word2)); // Y compris $word2 inversé
		$retour = strrev($retour); // On remets à l'endroit
		return $retour ; // Et le tour est joué !
}

$recup = localise("http://www.phpcs.com/","</span>Derniers Codes</h2>","<div class=\"C SC CO\" id=\"ctl00_Main_Tuto\">");
echo $recup ;
?>

A voir également

Ajouter un commentaire Commentaires
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
12 janv. 2007 à 13:25
DOMINION, "Qui n'a jamais réinventé les regexp une fois dans sa vie ?", euh... personellement, j'ai souvent fait sans, mais jamais recodé un match... et je ne dois pas être le seul dans ce cas...
JoebarGlut
Messages postés
111
Date d'inscription
mercredi 13 août 2003
Statut
Membre
Dernière intervention
17 octobre 2007

11 janv. 2007 à 19:47
Cool le lien, il a l'air bien fait :)

J'ai testé ta fonction kankrelune, c'est vraiment bien ce tableau de match_all, encore merci à tous, bye.
audayls
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

11 janv. 2007 à 19:04
vas sur http://www.vulgarisation-informatique.com/expressions-regulieres.php (le site d'anthomicro) tout est expliqué ;-)
JoebarGlut
Messages postés
111
Date d'inscription
mercredi 13 août 2003
Statut
Membre
Dernière intervention
17 octobre 2007

11 janv. 2007 à 18:50
C'est vrai c'est burk, j'osai pas le dire.
Sur ce lien, j'ai beaucoup ris :
1er exemple, niveau facile... hummm ok.
2eme exemple, niveau facile... ok
3eme exemple, niveau difficile :
preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]
([-_.]?[[:alnum:]])*\.([a-z]{2,4})$`',$chaine);

On dirais mon chat quand il marche sur le clavier.

http://www.expreg.com/pregmatch.php
cs_dominion
Messages postés
230
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
15 mai 2008

11 janv. 2007 à 18:27
l'avantage des regexps, c'est que ça marche pour tout (ou presque). Tu as aussi, dans le cas du php, une nette amélioration des perfs : ton code est directement exécuté par l'interpréteur PHP, ce qui est évidemment plus rapide. Et comme tu l'as dit, les options de filtres sont très utiles !!! Le seul véritable défaut que j'ai jamais trouvé dans les regexps, c'est cette syntaxe proprement dégeulasse où finalement tu comprends plus rien (vu que les espaces pour clarifier le code ne sont pas permises...)
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.