Suppression dans une chaine

Résolu
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 - 20 janv. 2006 à 15:17
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 - 23 janv. 2006 à 08:20
salut à tous !

voila mon souci :
j'ai dans une varable PHP appelée $chaine la chaine suivante : "aaaa<!-- DEBUT //-->bbbb<!-- FIN //-->cccc"

ce que je souhaiterai c'est refaire une chaine sans ce qui se trouve entre les 2 balises <!-- DEBUT //--> et <!-- FIN //--> pour dans mon exemple donner : "aaaacccc"

merci pour vos reponses !

11 réponses

cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
20 janv. 2006 à 15:44
bon je vais donner ma soluce :

$debut = '<!-- DEBUT //-->';
$fin = '<!-- FIN //-->';

$pos_debut = strpos($chaine, $debut);
$pos_fin = strpos($chaine, $fin);

$chaine1 = substr($chaine,0,$pos_debut-1);
$chaine2 = substr($chaine,$pos_fin+14,(strlen($chaine)-$pos_fin));

$chaine= $chaine1.$chaine2;

si d'autres personnes ont une meilleure idée je suis preneur ...
3
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
20 janv. 2006 à 15:56
$p1=strpos($chaine,'<');
$p2=strpos($chaine,'>');
$p3=strpos($chaine,'>',$p2+1);

$chaine1=substr($chaine,0,$p1-1);
$chaine2=substr($chaine,$p3+1);
$chainefinale=$chaine1.$chaine2;

en gros
il y a peut être plus simple
0
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
20 janv. 2006 à 16:07
ouai ca marche avec mon exemple mais ce n'était qu'un exemple ...
en réalité ma chaine est du code HTML alors chercher "<" et ">" ca ne fonctionne plus
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
20 janv. 2006 à 16:12
oui mais il faut bien chercher quelque chose pour extraire

$debut = '<!-- DEBUT //-->';
$fin = '<!-- FIN //-->';

la tu charges bien en dur, non ?
0

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

Posez votre question
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
20 janv. 2006 à 17:11
non je realise une fonction

$chaine ='............................................';
$new = fonction($chaine);

et ma fonction retourne la chaine sans ce qu'il y entre a mes 2 balises

donc il peut y avoir n'importe quoi avant <!-- DEBUT //-->, entre <!-- DEBUT //--> et <!-- FIN //-->, et apres <!-- FIN //-->.
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
20 janv. 2006 à 17:17
ok mais alors, si ta chaine c'est

aaaaaaaa+aaaaaaaa+ccccccc+cccccccc

tu récupères comment la première et la dernière partie ??
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
20 janv. 2006 à 17:22
tu dois pouvoir récupérer la position du premier '<' et celle du dernier '>'
je ne comprends pas bien
0
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
20 janv. 2006 à 17:34
hmm on se comprend pas je crois

voila réellement ce qu'est ma chaine :

$chaine = '
titre, ----

<!-- DEBUT //-->
----
en tete,
<!-- FIN //-->
----
contenu, ----

----
pied de page

';

Donc en final je souhaite :
$new_chaine = '
titre, ----

----
contenu, ----

----
pied de page

';
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
20 janv. 2006 à 20:21
ok je comprends (pas evident)



tu peux scanner le premier '<!' et le dernier '->'



non ?
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
20 janv. 2006 à 20:25
c'est quoi le but, virer des commentaires ?
0
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
23 janv. 2006 à 08:20
non c'est virer ce qu'il y a entre les 2 balises <!-- DEBUT //--> et <!-- FIN //-->
0
Rejoignez-nous