Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1472 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  str_replace et substr

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

str_replace et substr

n°1765144
spespam
Posté le 26-07-2008 à 02:54:21  profilanswer
 

Salut,
 
Je voudrais afficher les 50 premiers caractères d'une requête php et remplacer les <br /> par rien.  
 
Problème, quand je mets ce code, le raccourcissement des commentaires à 50 caractères ne marche plus (mais <br /> est bien remplacé par rien). Y a-til un moyen de corriger ça ?
 
Code :
$comment_court= htmlspecialchars(substr($voir['comment'], 0, 50)) . "...";
$comment_court = str_replace('<br />', ' ', $voir['comment']);

mood
Publicité
Posté le 26-07-2008 à 02:54:21  profilanswer
 

n°1765146
SICKofitAL​L
misanthrope
Posté le 26-07-2008 à 04:04:19  profilanswer
 

:??:

Code :
  1. $comment_court= htmlspecialchars(substr($voir['comment'], 0, 50)) . "...";
  2. $comment_court = str_replace('<br />', ' ', $comment_court);


---------------
We deserve everything that's coming...
n°1765214
spespam
Posté le 26-07-2008 à 14:38:59  profilanswer
 

Et non, avec ça, <br /> n'est pas remplacé. Il apparaît toujours en tant que <br />

n°1765268
c0wb0y
:d
Posté le 26-07-2008 à 19:52:28  profilanswer
 

Après avoir appliqué la fonction htmlspecialchars, tes caractères '<' et '>' sont remplacé par leurs équivalents en entité-caractère non ? Du coup ton str_replace fonctionne pas car ton pattern ne correspond pas à ce qui se trouve dans la chaine.
Tu devrais peut-être inverser les deux lignes, pour d'abord supprimer les <br /> tels qu'ils apparaissent dans le texte initial, puis couper le texte comme tu le souhaites.
 
nb: ma réponse se base sur mes souvenirs de php, il est possible que je me trompe quand au résultat de la fonction htmlspecialchars. :)
 
 
edit : Je viens d'aller voir la doc, et effectivement voici ce qu'on y trouve :

Citation :

#   "<" (inférieur à) devient "&lt;"
# ">" (supérieur à) devient "&gt;"


 
Si tu veux laisser ton code tel quel (pour éviter de faire plus de remplacement que nécessaire),  ton pattern pour le str_replace devrait plutôt ressemblait à:

Citation :

str_replace('&lt;br /&gt;', ' ', $comment_court);

Message cité 1 fois
Message édité par c0wb0y le 26-07-2008 à 19:54:49
n°1765269
c0wb0y
:d
Posté le 26-07-2008 à 19:57:16  profilanswer
 

c0wb0y a écrit :

Après avoir appliqué la fonction htmlspecialchars, tes caractères '<' et '>' sont remplacé par leurs équivalents en entité-caractère non ? Du coup ton str_replace fonctionne pas car ton pattern ne correspond pas à ce qui se trouve dans la chaine.
Tu devrais peut-être inverser les deux lignes, pour d'abord supprimer les <br /> tels qu'ils apparaissent dans le texte initial, puis couper le texte comme tu le souhaites.

 

nb: ma réponse se base sur mes souvenirs de php, il est possible que je me trompe quand au résultat de la fonction htmlspecialchars. :)

 


edit : Je viens d'aller voir la doc, et effectivement voici ce qu'on y trouve :

Citation :

#   "<" (inférieur à) devient "&lt;"
# ">" (supérieur à) devient "&gt;"

 

Si tu veux laisser ton code tel quel (pour éviter de faire plus de remplacement que nécessaire),  ton pattern pour le str_replace devrait plutôt ressemblait à:

Citation :

str_replace('&lt;br /&gt;', ' ', $comment_court);


 

edit2 :
A priori sans même changer le pattern, il suffit d'appliquer le htmlspecialchars sur le retour du str_replace je pense :

Citation :

$comment_court= substr($voir['comment'], 0, 50) . "...";
$comment_court = htmlspecialchars((str_replace('<br />', ' ', $voir['comment']));

 


nb: mayrde, double post, j'pensais avoir cliquer sur éditer, désolé. :jap:

Message cité 1 fois
Message édité par c0wb0y le 26-07-2008 à 19:57:49
n°1766407
Alisteroid
Posté le 29-07-2008 à 16:15:12  profilanswer
 

c0wb0y a écrit :


 

Citation :

$comment_court= substr($voir['comment'], 0, 50) . "...";
$comment_court = htmlspecialchars((str_replace('<br />', ' ', $voir['comment']));




 

Code :
  1. $comment_court= substr($voir['comment'], 0, 50) . "...";
  2. $comment_court = (str_replace(htmlspecialchars('<br />'), ' ', $voir['comment']);


 [:gamercool_02]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  str_replace et substr

 

Sujets relatifs
Bug php ? preg_replace / classe ...substr et caracteres spéciaux
preg_replace et casse[ PHP ] str_replace avancé dans un $texte
Enigmatique STRPOSReplace sans modification de la chaine
[vba] problème Replace / concaténationPreg replace : ne fonctionne que pour une seule ligne
bloquer la fonction replace sur une ligneAhhh les guillemets !!! ??? Concatenation, Replace, j'y arrive pas !
Plus de sujets relatifs à : str_replace et substr


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR