Extraire une chaine de caractère comprise entre 2 balises

Résolu
Bountard
Messages postés
15
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
13 juillet 2005
- 5 juil. 2005 à 14:53
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
- 5 juil. 2005 à 17:55
Salut à tous,

j'aimerais pouvoir extraire la chaine de caractère comprise entre 2 balises, type et par exemple.

Je ne vois pas comment faire merci pour votre aide.
A voir également:

10 réponses

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
5 juil. 2005 à 17:55
preg_match_all("/(<ol>)(.*)(<\/ol>)/", $html, $matches, PREG_SET_ORDER);


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
3
morpheus262
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

5 juil. 2005 à 15:19
Salut,

j ai une solution (qui n est surement pas la meilleur)

$tab[]=explode("",$tachaine);
et dans $tab[1] tu as ta chaine sans la balise de debut.
$tab2[]=explode("",$tab[1] );
et la dans $tab2[0] tu devrait avoir ta chaine sans les balises.
une solution mais encore une fois il doit exister mieux


<HR>
On ne peut pas savoir tout faire, mais on peut tout apprendre avec du travail. Morpheus262

PS: Besoin d aide pour developper, besoin d un collaborateur pour faire votre site, contacter moi par mail
l
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
5 juil. 2005 à 15:26
ton fichier est sous quel format ?

html ? xml ?



t'as tidy qui parse le html et t'as aussi un parseur xml en php

cherches sur php.net



sinon, t'as les exopressions régulières...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
5 juil. 2005 à 15:27
Hello,



plus simple en utilisant strpos () a mon avis.

Sinon une source vient d'etre postee pour ca, je ne l'ai pas testee
mais elle n'est pas tres compliquee donc devrait fonctionner :

http://www.phpcs.com/code.aspx?ID=32482
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malik7934
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
5 juil. 2005 à 15:31
un chti exple:
<?php
$chaine= " Hello World , comment ca va?";
$chaine2 =ereg_replace('<([^>])*>',' ',$chaine);
echo $chaine2; // donne: Hello World, comment ca va
?>
0
Bountard
Messages postés
15
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
13 juillet 2005

5 juil. 2005 à 15:34
en fait j'utilise ce petit programme : www.fckeditor.net, qui permet
d'editer un texte dans une page html, c'est du même type qu'ici sur les
forums.

Celui-ci produit un code, entre balise, que je transforme en Rtf par la suite.

Dans celui ci j'ai par exemple les balises :

<ol>

<li> un texte </li>

</ol>



et





<li> un autre texte </li>





Je voudrais extraire dans $valeur le contenu <li>un texte</li>



Merci d'avance.
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
5 juil. 2005 à 15:38
tidy ou les expressions régulières comme je l'ai dit plus haut ou comme l'a dit :[auteurdetail.aspx?ID=162205 malik7934] (l'exemple de malik est tiré de php.net, t'aurais pu trouver le même...)

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
Bountard
Messages postés
15
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
13 juillet 2005

5 juil. 2005 à 16:02
En effet quand une seul balise existe j'y arrive avec cette méthode,
par contre se pose un problème quand j'ai plusieurs fois les mêmes
balises, que faire a ce moment la ?

utiliser List() serait une solution, mais cela veut dire que je connais le nombre d'élements,hors je ne le connais pas.

Merci beaucoup.
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
5 juil. 2005 à 16:06
renseigne toi sur



preg_match_all

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
Bountard
Messages postés
15
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
13 juillet 2005

5 juil. 2005 à 16:53
Voila ou j'en suis, merci pour le preg_match_all c'est apperement ce qu'il me fallait.

Cependant je ne comprends pas tout a fait les exemples :



$html = '<ol> <li> un </li> <li> deux </li> </ol>';

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);



Voila par exemple un petit code que j'ai modifier légerement. J'ai lu
la description des ( [ * ... mais je ne comprends pas trop ce qui se
passe ici.

J'aimerais que preg_match_all prenne que ce qui est compris entre <ol> et </ol>.

Un peu d'aide serait la bienvenue, merci d'avance.
0