Insérer un espace entre chaque caractère

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Insérer un espace entre chaque caractère

par @rthur » 12 juil. 2007, 15:22

Bonjour,

Je ne sais pas ce à quoi tu veux arriver au final, mais si c'est uniquement pour de l'affichage, la propriété CSS letter-spacing est bien plus simple à mettre en place:
http://www.w3schools.com/css/pr_text_letter-spacing.asp

par VaN » 12 juil. 2007, 14:38

chunk_split fonctionne bien il semblerait (même si ça n'a pas l'air d'être son utilisation première.) Merci.

par Sékiltoyai » 11 juil. 2007, 16:40

C'est effectivement ce genre de fonction que je cherchais, mais il semble qu'il y ait un problème :
elle n'intercalle par d'espace   autour d'un espace HTML normal '(crée avec la barre d'espace).
Ouais, ca doit être parce qu'elle est destinée à l'origine pour traiter des mots.

par Ryle » 11 juil. 2007, 13:41

Dans ce cas, tu peux peut être essayer la même chose avec chunk_split() voir si cela prend en compte les espaces également ou pas :)

par VaN » 11 juil. 2007, 13:13

C'est effectivement ce genre de fonction que je cherchais, mais il semble qu'il y ait un problème :
elle n'intercalle par d'espace   autour d'un espace HTML normal '(crée avec la barre d'espace).

par Sékiltoyai » 10 juil. 2007, 17:25

Ou wordwrap en plus rapide :
<?php
echo wordwrap($str, 1, '&nbsp;', true);
?>

par VaN » 10 juil. 2007, 16:48

Merci à vous 2.

J'ai utilisé la réponse de Ryle, et après quelques retouches, ça fonctionne comme il faut :

Code : Tout sélectionner

<h1><?php echo preg_replace("/(.{1})/Ui", "$1&nbsp;", strtoupper($result['module_title'])); ?></h1>
(j'utilise &nbsp; pour également rajouter des espaces entre les espaces du mot source.)

par Jules Petibidon » 10 juil. 2007, 16:33

hello,

sinon str_split() ne répondrait pas à ton problème ?

par Ryle » 10 juil. 2007, 16:04

Avec preg_replace() tu dois pouvoir créer un pattern assez simple du style un caractère quelconque, présent une fois, que tu captures et remplace par ce même caractère et un espace :
preg_replace("/(.{1})/Ui", "$1 ", $str);
A tester, mais ça doit être quelque chose du genre... y même probablement pas besoin du {1} .. je te laisse essayer :)

Insérer un espace entre chaque caractère

par VaN » 10 juil. 2007, 15:51

Bonjour,

j'aimerai pouvoir insérer un espace entre chaque caractère de strings que je manipule, mais hélas, je ne suis pas très calé en regex, et il semble que le meilleure moyen de réaliser cela soit de passer par ces regex.

Existe t-il une autre solution ? Si non, existe t-il une regex simpliste qui permette de faire cela ?

Les caractères à séparer peuvent être n'importe quoi, une lettre, un digit, une apostrophe, etc.

merci d'avance.