bonjour,
j'aimerai faire la recherche à la fin d'une chaîne de caractère, soit "<" soit "<b" soit "<br" soit "<br>" et les supprimer.
je pensais faire une tableau mais est ce la meilleure solution ?
quelle fonction utiliser ?
merci d'avance
bonjour,
j'aimerai faire la recherche à la fin d'une chaîne de caractère, soit "<" soit "<b" soit "<br" soit "<br>" et les supprimer.
je pensais faire une tableau mais est ce la meilleure solution ?
quelle fonction utiliser ?
merci d'avance
j'ai fait ça :mais ça ne marche pas du tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part $commentaire = str_replace("(<|<b|<br|<br>)$","",$commentaire);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','','texte<'))); var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','','texte<b'))); var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','','texte<br'))); var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','','texte<br>')));
j'ai un peu du mal à comprendre ta réponse.
j'ai fait le code suivant :
ce qui est retourné :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $commentaire = var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<'))); $commentaire = var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<b'))); $commentaire = var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<br'))); $commentaire = var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<br>'))); echo $commentaire;
je ne vois pas vraiment comment exploiter le résultat !string(230) "Cet escalier en liaison est une construction importante, situé entre trois bâtiments :<br /> - des logements collectifs<br /> - des parkings souterrains<br /> - le bâtiment commercial<br " string(0) "" string(0) "" string(0) ""
Décomposons :
Code : Sélectionner tout - Visualiser dans une fenêtre à part var_dump(htmlentities(preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<')));
http://php.net/var_dump
http://php.net/htmlentities
http://php.net/preg_replace
Autrement dis, la première fonction m'affiche plein d'infos utiles pour debugger
La deuxième permet d'afficher les tags html pour voir si ils sont présent ou pas (rappellons-nous que nous sommes dans un document html)
La dernière fait apparemment ce que tu attends.
Désolé de ne pas avoir donné plus d'explication, mais l'utilisation de var_dump & co sont super utiles pour débugger et pour moi c'est naturel de les utiliser en developpement. J'oublie trop facilement que ce n'est pas un reflexe pour tout le monde
Pour conclure donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $commentaire = htmlentities(preg_replace('/(<|<b|<br|<br>)$/','',$commentaire);
merci pour l'info !
je vais être encore chiante une dernière fois.
Avec la fonction htmlentities(), tous les caractères spéciaux sont transformés :
comment éviter cela ?Cet escalier en liaison est une construction importante, situ&amp;eacute; entre trois b&amp;acirc;timents :&amp;lt;br /&amp;gt; - des logements collectifs&amp;lt;br /&amp;gt; - des parkings souterrains&amp;lt;br /&amp;gt; - le b&amp;acirc;timent commercial&amp;lt;br
de plus, le "<br" de la fin de la chaîne n'est pas supprimé
ce que je n'ai pas précisé c'est que je coupe $commentaire et je lui rajoute "... [Suite]" :
j'ai édité le code html généré et y'a vraiment un problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $commentaire = substr($commentaire,0,190); $commentaire = preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<'); $commentaire = preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<b'); $commentaire = preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<br'); $commentaire = preg_replace('/(<|<b|<br|<br>)$/','',$commentaire.'<br>'); $commentaire = $commentaire."... [Suite]"; echo $commentaire;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Cet escalier en liaison est une construction importante, situé entre trois bâtiments :<br> - des logements collectifs<br> - des parkings souterrains<br> - le bâtiment commercial<br .="" [suite="">
Je suis pas bien réveillé moa ! Il ne faut pas utiliser htmlentities...
Je mérite le fouet !
Va-t-on y arriver cette fois ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $commentaire = preg_replace('/(<|<b|<br|<br>)$/','',$commentaire);
Pour le dernier br :
Essaie ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $commentaire = preg_replace('/(<|<b|<br|<br>)$/','',trim($commentaire));
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager