Page 1 sur 1

Ajouter un espace tous les X caractères, si il n'y en a pas

Posté : 26 nov. 2008, 16:14
par VaN
Bonjour,

je souhaite créer une fonction qui me permette d'ajouter un espace dans une chaine de caractères, tous les X caractères, si dans ces X caratères, aucun espace n'a été trouvé, et ainsi de suite, sur toute la longueur du string.

Mais j'ai du voir comment créer ce genre de fonction, et je ne crois pas qu'il existe de fonction de ce genre, native à PHP.

Quelqu'un pourrait-il me dire comment faire ?

Posté : 26 nov. 2008, 19:10
par Victor BRITO
Avec les expressions régulières, il y a de quoi s'amuser. ;)
$lachaine = 'ab cd efghijkl mnopqrst uvwx yz';
// On ajoute une espace tous les 4 caractères si l'ensemble de 4 caractères n'en contient pas déjà
$nouvellechaine = preg_replace ("/([^[:space:]]{4})/", '\1 ', $lachaine);
echo $nouvellechaine; // Affiche ab cd efgh ijkl mnop qrst uvwx yz
J'ignore si c'est ce que tu veux obtenir exactement ; mais, ce bout de code marche.

Posté : 26 nov. 2008, 21:56
par AB
Sinon il y a wordwrap() pour un fonctionnement différent de la fonction qu'indique Victor ... à toi de voir ce que tu veux exactement.

Posté : 27 nov. 2008, 19:41
par VaN
Il faut d'abord que j'arrive à savoir si un espace a été trouvé dans les X premiers caractères, puis dans les X second, avant de penser à en ajouter un si il n'y en a pas.

Posté : 27 nov. 2008, 21:00
par Invité
pourquoi la réponse de Victor ne te convient pas ?

selon toi, que devrait donner la chaine 'ab cd efghijkl mnopqrst uvwx yz' si X=4 ?