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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 837 fois - Téléchargée 23 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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
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...
Messages postés
111
Date d'inscription
mercredi 13 août 2003
Statut
Membre
Dernière intervention
17 octobre 2007

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.
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

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

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
Messages postés
230
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
15 mai 2008

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.