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

VaN
Mammouth du PHP | 1107 Messages

26 nov. 2008, 16:14

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 ?

Mammouth du PHP | 2937 Messages

26 nov. 2008, 19:10

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.

ViPHP
AB
ViPHP | 5818 Messages

26 nov. 2008, 21:56

Sinon il y a wordwrap() pour un fonctionnement différent de la fonction qu'indique Victor ... à toi de voir ce que tu veux exactement.

VaN
Mammouth du PHP | 1107 Messages

27 nov. 2008, 19:41

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.

Invité
Invité n'ayant pas de compte PHPfrance

27 nov. 2008, 21:00

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 ?