php éliminer une chaine de caracteres dans une autre
10 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- webmasterdemonsite
- WRInaute accro

- Messages: 1086
- Inscription: Ven Aoû 31, 2007 23:47
php éliminer une chaine de caracteres dans une autre
bonjour
je sais que ce n'ai pas un forum sur le php, mais je ne vais pas m'inscire sur un forum php pour si peu (dommage pour eux
)
j'ai une chaine $chaine
je voudrais éliminer de $chaine tout ce qui ce trouve entre le caractére [ et le caractére ]
exemple:
ô communauté WRI tout puissante, mais quelle est donc cette fonction php ésotérique qui me permet d'atteindre ce but ultime et suprême ?
je sais que ce n'ai pas un forum sur le php, mais je ne vais pas m'inscire sur un forum php pour si peu (dommage pour eux
j'ai une chaine $chaine
je voudrais éliminer de $chaine tout ce qui ce trouve entre le caractére [ et le caractére ]
exemple:
$chaine="[url]Une_Url_Quelquonque[/url]"
devient:
$chaine="Une_Url_Quelquonque"
ô communauté WRI tout puissante, mais quelle est donc cette fonction php ésotérique qui me permet d'atteindre ce but ultime et suprême ?
utilise http://www.php.net/strtr si tu connais exactement ce que tu veux supprimer de ta chaine
Si non trouve la position du premier "[" et puis de "]" avec la fonction strpos
et supprime tout ces qui se trouve entre ces deux positions(je sais pas avec quelle fonction...)
Si non trouve la position du premier "[" et puis de "]" avec la fonction strpos
et supprime tout ces qui se trouve entre ces deux positions(je sais pas avec quelle fonction...)
- webmasterdemonsite
- WRInaute accro

- Messages: 1086
- Inscription: Ven Aoû 31, 2007 23:47
merci à vous
je vais étudier les regex alors
j'ai deja utiliser des regex dans .htacces mais betement je ne savais pas que l'on pouvais l'appliquer aux variables php
je vais étudier les regex alors
j'ai deja utiliser des regex dans .htacces mais betement je ne savais pas que l'on pouvais l'appliquer aux variables php
- webmasterdemonsite
- WRInaute accro

- Messages: 1086
- Inscription: Ven Aoû 31, 2007 23:47
allez, je poste la réponse à ma question, si ca peut aider quelqu'un:
explication de #\[(.*)\](.*)\[(.*)\]#U
\[ c'est le caractère [ échapé
(.*) c'est n'ilmporte quel caratère
\] c'est le caractère ] échapé
U pour dire au regex de s'arrêter à la première occurence
$2 c'est ce qui est dans la deuxième paranthèse du regex
donc ca fait un truc du genre:
[bbcode]blablablablabla[bbcode] est transformé en blablablablabla
- Code: Tout sélectionner
preg_replace('#\[(.*)\](.*)\[(.*)\]#U', '$2', $texte)
explication de #\[(.*)\](.*)\[(.*)\]#U
\[ c'est le caractère [ échapé
(.*) c'est n'ilmporte quel caratère
\] c'est le caractère ] échapé
U pour dire au regex de s'arrêter à la première occurence
$2 c'est ce qui est dans la deuxième paranthèse du regex
donc ca fait un truc du genre:
[bbcode]blablablablabla[bbcode] est transformé en blablablablabla
Re: php éliminer une chaine de caracteres dans une autre
webmasterdemonsite a écrit:bonjour
je sais que ce n'ai pas un forum sur le php, mais je ne vais pas m'inscire sur un forum php pour si peu (dommage pour eux)
(.*) c'est n'ilmporte quel caratère
c'est sans compter les retours chariots
il faut un ? dans le masque principale pour éviter d'être victime d'une capture paresseuse à cause de ces retours chariots
- Code: Tout sélectionner
preg_replace('#\[(.*)\](.*?)\[(.*)\]#U', '$2', $texte);
et comme on est royal on va s'eviter 3 captures quand 1 seule suffit
- Code: Tout sélectionner
preg_replace('#\[.*\](.*?)\[.*\]#U', '$1', $texte);
++
- webmasterdemonsite
- WRInaute accro

- Messages: 1086
- Inscription: Ven Aoû 31, 2007 23:47
Re: php éliminer une chaine de caracteres dans une autre
Merci KOogar
les regex n'ont pas l'air d'avoir de secrets pour toi
je viens d'essayer mais ca ne me fais pas le même résultat que mon bout de code:
Le but étant que $texte est le contenu d'un post de mon forum, j'ôte les tags html, puis les retours chariot et retour à la ligne et enfin les balises bbcode
y a peut être moyen de faire mieux que mon bout de code, mais vous allez vous moquer de moi, cela m'a pris la matinée
un dimanche en plus
A+
les regex n'ont pas l'air d'avoir de secrets pour toi
KOogar a écrit:(.*) c'est n'ilmporte quel caratère
c'est sans compter les retours chariots
il faut un ? dans le masque principale pour éviter d'être victime d'une capture paresseuse à cause de ces retours chariots
- Code: Tout sélectionner
preg_replace('#\[(.*)\](.*?)\[(.*)\]#U', '$2', $texte);
et comme on est royal on va s'eviter 3 captures quand 1 seule suffit
- Code: Tout sélectionner
preg_replace('#\[.*\](.*?)\[.*\]#U', '$1', $texte);
++
je viens d'essayer mais ca ne me fais pas le même résultat que mon bout de code:
- Code: Tout sélectionner
$texte = strip_tags ($texte);
$texte = preg_replace('#\s#U', ' ', $texte);
$texte = preg_replace('#\[(.*)\](.*)\[(.*)\]#U', '$2', $texte);
Le but étant que $texte est le contenu d'un post de mon forum, j'ôte les tags html, puis les retours chariot et retour à la ligne et enfin les balises bbcode
y a peut être moyen de faire mieux que mon bout de code, mais vous allez vous moquer de moi, cela m'a pris la matinée
A+
10 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum