preg_match au lieu de eregi

HD
Mammouth du PHP | 1181 Messages

18 août 2005, 13:41

salut
preg_match
Description
int preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )
c'est pas tres clair pour moi alors si l'on pouvait m'aider à reecrire
$titre = eregi("Dernier cours :(.*)MAD</TD>",$page,$regs);
 $titre = eregi("tcol2(.*)&nbsp",$regs[1],$regs2);
$titre = eregi(">(.*)",$regs2[1],$regs3);
avec preg_match au lieu de eregi
merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 août 2005, 14:08

ben c'est à peu de choses près la même chose pour chaque fonction :
une expression régulière, une chaine à traiter

et un paramètre optionnel qui récupère éventuellement les motifs trouvés

donc je ne vois pas où est la difficulté :) par contre si tu veux quand même de l'aide, pour modifier la regexp, ce serait utile de savoir le but de l'opération ;)

HD
Mammouth du PHP | 1181 Messages

18 août 2005, 15:45

en fait j'ai un
$page = file_get_contents($adresse) ;
et apres je fais int preg_match
je peux avoir un exemple qui utilise tous les parametres (en expliquant chacun) comme ca je reecris mon code ? merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 août 2005, 15:49

franchement je ne pense pas pouvoir t'expliquer mieux que la doc : http://fr2.php.net/manual/fr/function.preg-match.php

à la limite tenter d'éclaircir un point précis oui, regarde la doc déjà ;)

regarde le testeur ici : www.lumadis.be

tu choisir le mode de sortie (surlignage, tableau) ça peut aider à comprendre

HD
Mammouth du PHP | 1181 Messages

18 août 2005, 16:35

tu imagine bien que
preg_match
Description
int preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )
je l'ai trouvé dans la doc (et donc que je l'ai lu)
et je ne demande pas d'explcations du principe mais juste à quoi correspond chaque parametre
( string pattern, string subject [, array &matches [, int flags [, int offset]]] )
et un exemple utilisant tous les parametres car les exemples de la doc se limient au 1er (phrase à chercher)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 août 2005, 16:56

bon bon...
<?php

$chaine = 'a-1-b-2-c-3-d-4-e-5-f-6-g-7-h-8-i-9-j'; // chaine à traiter
$regexp = '#-([a-z])+#'; // expression régulière

$debut = 4; // on dit de traiter la chaine à partir du caractère 4 (le 3ième)

$resultat = preg_match_all($regexp, $chaine,$matches, PREG_OFFSET_CAPTURE, $debut);

echo $chaine; // la chaine de départ
echo '<br />';
echo $resultat; // le nombre de bouts qui correspondent
echo '<br />';
echo '<pre>';
print_r($matches[0]); // chaque cellule contient un bout qui correspond au motif : -c -d... etc
print_r($matches[1]); // chaque cellule contient un bout qui a été capturé par els parenthèses : c d... etc
echo '</pre>';
?>
est-ce que c'est plus parlant ?

j'avoue que je ne visualise pas trop ce que fait PREG_OFFSET_CAPTURE, il faudrait un meilleur spécialiste :)

HD
Mammouth du PHP | 1181 Messages

18 août 2005, 16:57

c'est plus clair maintenant merci !