Page 1 sur 1

Itération et regex

Posté : 20 janv. 2010, 20:18
par Stef
Buenas tardes!

exposé du problème:

* j'ai un fichier html composé d'une succession de chaines, chacunes étant encadrées par <p> et </p>
* je veux insérer en bdd chaque chaîne séparément (une entrée pour chacunes)

Quelle expression régulière, au sein d'un traitement itératif, me permettrait de parvenir au résultat escompté?

Un bien grand et humble merci pour vos avis! : )

Re: Itération et regex

Posté : 20 janv. 2010, 22:24
par AB
Sur le principe tu peux essayer

Code : Tout sélectionner

$texte = 'ta chaine de caractères'; preg_match_all('#<p>(.+)</p>#U', $texte, $matches); $contenu_p = $matches[1]; echo '<pre>'; print_r($contenu_p); echo '</pre>';
Normalement si tout se passe bien le contenu de tes lignes se trouvera dans le tableau $contenu_p

Re: Itération et regex

Posté : 21 janv. 2010, 07:35
par Stef
Génial!! Merci beaucoup AB! : )

Re: Itération et regex

Posté : 21 janv. 2010, 12:40
par FredoMkbFr
Bonjour :-)

Juste un petit complément au code proposé par AB, ce n'est pas toujours nécessaire, mais c'est une bonne habitude à prendre de bien penser à protéger (échapper) certains caractères, notamment les balises Html, pour ça il y a une fonction toute faite "preg_quote()", donc :

Code : Tout sélectionner

$texte = 'ta chaine de caractères'; $debut_p = preg_quote('<p>'); $fin_p = preg_quote('</p>'); preg_match_all('#'.$debut_p.'(.+)'.$fin_p.'#U', $texte, $matches); $contenu_p = $matches[1]; echo '<pre>'; print_r($contenu_p); echo '</pre>';
Voilô :-)

Re: Itération et regex

Posté : 21 janv. 2010, 13:02
par Stef
Je connaissais pas... merci pour l'info! : )

Re: Itération et regex

Posté : 22 janv. 2010, 15:11
par stealth35
si ta un fichier html et que tu veux le parser pour recuperer des donnée il faut utiliser DomDocument, c'est la pour ca
http://php.net/manual/fr/class.domdocument.php

Re: Itération et regex

Posté : 22 janv. 2010, 16:14
par Stef
Irie! raaaaaaaaaastafari! i'n'i!!

Merci stealth!

Pour la peine je t'offre ce tune:

http://www.youtube.com/watch?v=yZwRg8O91sw

Sois bénis! : )