cs_Linuss
Messages postés176Date d'inscriptionmardi 7 octobre 2003StatutMembreDernière intervention 9 mai 2008
-
29 nov. 2007 à 14:04
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
29 nov. 2007 à 17:52
Bonjour à tous,
J'aurais voulu savoir comment faire pour prendre un texte en php qui est par exemple entre deux balises svp?
ex : <td>Texte ici</td>
<td>Seconde txt</td>
...
puis je me retrouve avec un tableau du genre tab[1] = "Texte ici", tab[2] = "Second txt" etc.
Merci :)
$chaine est la chaine dans laquelle faire la recherche. Par exemple :
$chaine = file_get_contents('fichier.txt');
Cela crée un tableau $resultats qui contient
$resultats[0] : un tableau avec les correspondances de la chaine (y compris les balises)
$resultats[1] : un tableau avec les correspondances du masque de capture (ce qui est dans la parenthèse, donc sans les balises)
Explications de l'expression régulière :
` : délimiteur de l'expression
(.*) capture de tous les caractères, quel que soit leur nombre.
On capture donc tout ce qui se trouve entre <td> et </td>
Options de recherche :
s : L'expression régulière ne cherche pas que sur une seule ligne, mais éventuellement sur plusieurs.
U : la parenthèse capturante n'est pas gourmande. Par défaut, une parenthèse capturante est gourmande, c'est à dire qu'elle capture tout ce qui se trouve entre <td> et </td>, même s'il y a d'autres </td> au milieu. Sans ce U, la parenthèse capture tout ce qui se trouve entre le premier <td> et le dernier </td> Avec l'option U, elle recherche ce qui se trouve entre le premier <td> et le prochain </td>
Pour reprendre ton exemple, la ligne de code que je t'ai donnée donnera le résultat suivant :