|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
kivan WRInaute discret

Inscrit le: 10 Avr 2004 Messages: 72
|
Posté le : Mar Oct 11, 2005 21:49 Sujet du message: Mots trop longs |
|
|
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 ! |
|
| |
|
 |
Darracq WRInaute impliqué

Inscrit le: 28 Oct 2003 Messages: 298 Localisation: Biarritz
|
Posté le : Mar Oct 11, 2005 21:57 Sujet du message: Mots trop longs |
|
|
... c'est une bonne idée.
C'est bien le Heavy-Metal, ça !
Toujours aller au plus direct! |
|
| |
|
 |
kivan WRInaute discret

Inscrit le: 10 Avr 2004 Messages: 72
|
Posté le : Mar Oct 11, 2005 22:11 Sujet du message: Mots trop longs |
|
|
je sais merci, je n'ai que des bonnes idées.... je n'arrive juste pas à les faire après....
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.... |
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Mar Oct 11, 2005 22:25 Sujet du message: Mots trop longs |
|
|
| Code: |
| $texte=preg_replace( "/([\W]+)([\w]{5})[\w]+([\w]{5})([\W]+)/i", "\\1\\2...\\3\\4", $texte ); |
Ca marche pas ça ?
 |
|
| |
|
 |
kivan WRInaute discret

Inscrit le: 10 Avr 2004 Messages: 72
|
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Mar Oct 11, 2005 22:36 Sujet du message: Mots trop longs |
|
|
| 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 !
 |
|
| |
|
 |
kivan WRInaute discret

Inscrit le: 10 Avr 2004 Messages: 72
|
Posté le : Mar Oct 11, 2005 23:00 Sujet du message: Mots trop longs |
|
|
bon après quelque recherches, j'arrive à cela :
$texte=preg_replace( "/([\W\&\=]+)([\w\&\=]{5})[\S\&=]+([\w\&\=]{5})[\S\&\=]+([\w\&\=]{5})([\W\&\=]+)/i", "\\1\\2...\\4\\5", $texte );
qui me retourne
http://liqui...3&sid=5e42a579f17f445478222100d146beb4
pour l'exemple ci-dessus... |
|
| |
|
 |
Patrouilleur Nouveau WRInaute
Inscrit le: 13 Oct 2005 Messages: 10
|
Posté le : Ven Oct 14, 2005 10:23 Sujet du message: Mots trop longs |
|
|
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. |
|
| |
|
 |
kivan WRInaute discret

Inscrit le: 10 Avr 2004 Messages: 72
|
|
| |
|
 |
| |
|
|