Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2008, 00h23   #1
Invité de passage
 
Inscription : février 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 6
Points : 2
Points : 2
Par défaut Fonction cutLongWords et balise [IMG]

Bonjour a tous :

Je m'occupe d'un forum qui utilise le bbcode pour afficher les images, codes, etc...

J'ai recemment rajouter dans le code la fonction suivante :

Code :
1
2
3
4
5
 
function cutLongWords($str,$length='60',$separation=' ') 
{ 
	 return preg_replace('/([^ ]{'.$length.'})/si','\\1'.$separation,$str); 
}
pour éviter des problemes avec des mots trop long. Le souçis c'est que si on fais un message et qu'on insére dans le message une image avec la balise [IMG] et que le lien vers l'image fais plus de 60 caractéres ([IMG] y compris, et ca arrive souvent), ca coupe et ca rajoute un espace... du coup l'image ne s'affiche pas correctement.

Y'a t'il une solution pour que lorsque la fonction coupe a 60 caractéres, elle ne tienne pas compte de ce qu'il y'a entre les balises [IMG] ?

En esperant que je me suis bien exprimé, je ne suis pas un pro php
nydaunvan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 00h54   #2
Invité de passage
 
Inscription : février 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 6
Points : 2
Points : 2
ok en fait j'ai trouvé en modifiant la fonction comme ceci :

Code :
1
2
3
4
5
6
7
 
$min='25'; 
function cutLongWords($match,$longueur=60,$inserer=' ') 
{ 
  return wordwrap($match[1],$longueur,$inserer,1); 
} 
$message=preg_replace_callback('`\b([[:alnum:]]{'.$min.',})\b`','cutLongWords', $message);
et ca fonctionne nickel :p
nydaunvan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web