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! : )