Mots trop longs

WRInaute discret
voilà, j'aimerai dans un texte donné remplacé les mots de plus de n caractères par un mot de m caractères, scindé par des ...

exemple :

Anticonstitutionnellement -> Anti....ement


merci d'avance !
 
WRInaute discret
je sais merci, je n'ai que des bonnes idées.... je n'arrive juste pas à les faire après.... :mrgreen:

bon j'ai un truc come ça :
$texte=preg_replace("/([ ])([A-Z0-9]*){10}([ ,]|[\n])/i","\\1...\\2"," $texte");

mais déjà là ca ne fait pas ce que je voudrait....
 
WRInaute occasionnel
Code:
$texte=preg_replace( "/([\W]+)([\w]{5})[\w]+([\w]{5})([\W]+)/i", "\\1\\2...\\3\\4", $texte );
Ca marche pas ça ?

:wink:
 
WRInaute occasionnel
Code:
$texte=preg_replace( "/([\s]+)([\S]{5})[\S]+([\S]{5})([\s]+)/i", "\\1\\2...\\3\\4", $texte );
Mais ça risque de poser des petits problèmes...
du style pour la ponctuation collée au mot ... faut tester !

:wink:
 
Nouveau WRInaute
Bonjour,
Voila une petite fonction sympa qui gère le problème des mots trop longs (et qui ont une facheuse tendance à exploser les TD des Tables ;-)

function cutLongWords($string,$length,$separation) {
return preg_replace('/([^ ]{'.$length.'})/si','\1'.$separation,$string);
}

ensuite bah l'appel se fait de cette manière:

$new_chaine = cutLongWords("$chaine", $Nombre_de_caractère, " ");

$separation c'est par quoi vous voulez remplacer la coupure, un espace, une virgule .... un carambar, ce que vous voulez ;)

Euh, je précise que j'en suis pas l'auteur... je suis pas assez doué pour cela.
 
Discussions similaires
Haut