[PHP] remplacer x caractères en x autres caractères

remplacer x caractères en x autres caractères [PHP] - PHP - Programmation

Marsh Posté le 23-05-2002 à 00:21:04    

hello,
je suis une nouille en expression régulière (g pas encore tout assimilé) alors comment remplacer x caractères en x autres caractères ?
 
j'aurais besoin de transformer les espaces s'il y en a plus que 2 en   je sais remplacer toujours les espaces par 2 espaces avec $string= ereg_replace("[ ]{2,}",'  ', $string);
 
thx :)

 

[jfdsdjhfuetppo]--Message édité par ethernal le 23-05-2002 à 00:23:23--[/jfdsdjhfuetppo]


---------------
...oups kernel error...
Reply

Marsh Posté le 23-05-2002 à 00:21:04   

Reply

Marsh Posté le 23-05-2002 à 00:22:38    

ça fct pas l'édition de la catégorie du message :cry: ????
ha non ok, ça se rajoute pas automatiquement dans le sujet avec [categorie]... désolé c mon premier post depuis le nouveau système

 

[jfdsdjhfuetppo]--Message édité par ethernal le 23-05-2002 à 00:24:12--[/jfdsdjhfuetppo]


---------------
...oups kernel error...
Reply

Marsh Posté le 23-05-2002 à 08:27:18    

y a ca sur php.net :
 
A Quick way of removing excess spaces:
<?
$string = "One        Two          Three   Four";
 
$var = eregi_replace(" +", " ", $string);  
 
echo $var;
?>


---------------
All we need is a soul revolution
Reply

Marsh Posté le 23-05-2002 à 11:16:23    

kayasax a écrit a écrit :

y a ca sur php.net :
 
A Quick way of removing excess spaces:
<?
$string = "One        Two          Three   Four";
 
$var = eregi_replace(" +", " ", $string);  
 
echo $var;
?>  




 :hello:  merci pour ta réponse, mais ça ne donne pas le résultat que je désire :(
ça remplace x espaces par un seul (comme j'ai actuellement)
 
J'aimerais que  
- 1 espace, pas de modification
- 2 espaces ça donne   
- 3 espaces ça donne    
- etc...


---------------
...oups kernel error...
Reply

Marsh Posté le 23-05-2002 à 11:29:37    

ah dsl j'avais pas compris ca...
je vois pas la...

Reply

Marsh Posté le 23-05-2002 à 11:42:34    

merci qd même :)


---------------
...oups kernel error...
Reply

Marsh Posté le 23-05-2002 à 14:28:45    

bah tu remplace tous les espaces :)
 
que ca soit un " " ou un " " ca change rien :)

Reply

Marsh Posté le 23-05-2002 à 14:34:22    

bof, ça prend bcp de place (5car à la place d'un seul)...


---------------
...oups kernel error...
Reply

Marsh Posté le 23-05-2002 à 14:35:08    

bah alors une chtite regexp et c bon :)

Reply

Marsh Posté le 23-05-2002 à 14:39:40    

$var = eregi_replace(" ( {1,})"," \\1",$var);
 
 
chui pa sur g fait ca a la volée ...

Reply

Marsh Posté le 23-05-2002 à 14:39:40   

Reply

Marsh Posté le 23-05-2002 à 15:19:28    

ça ne transforme pas les espaces en   :(
 
en décomposant il faudrait une partie qui extrait les suites d'espaces >2 et une autre qui les remplace par  ...
 
genre  
$var= eregi_replace("( {1,})",  
         str_replace(' ', ' '," \\1" ),  
         $var);
 
mais ça fct pas


---------------
...oups kernel error...
Reply

Marsh Posté le 23-05-2002 à 20:19:24    

:bounce:  :bounce:  
il faut transformer
AA A  A    A A ----> AA A  A    A A
 
ou si vous préférez : AA A  A    A A -----> AA AxxAxxxxA A
 
Help please  :cry:

 

[jfdsdjhfuetppo]--Message édité par ethernal le 23-05-2002 à 20:20:02--[/jfdsdjhfuetppo]


---------------
...oups kernel error...
Reply

Marsh Posté le 23-05-2002 à 20:41:10    

pkoi ?

Reply

Marsh Posté le 23-05-2002 à 21:19:32    

Pour l'indentation du contenu d'un textarea vers un affichage html de façon à respecter la personne qui s'est amusé à structurer son msg pour le rendre plus lisible.
 
à moins qu'il existe une <font> qui permet d'afficher en indentant sans rien ajouter ? (<code></code> par exemple ?)
mais bon tout mettre en <code></code> c pas terrible non plus


---------------
...oups kernel error...
Reply

Marsh Posté le 24-05-2002 à 14:53:23    

ethernal a écrit a écrit :

Pour l'indentation du contenu d'un textarea vers un affichage html de façon à respecter la personne qui s'est amusé à structurer son msg pour le rendre plus lisible.
 
à moins qu'il existe une <font> qui permet d'afficher en indentant sans rien ajouter ? (<code></code> par exemple ?)
mais bon tout mettre en <code></code> c pas terrible non plus  




 
bah tu definis un style pour le textarea et le tour est joué

Reply

Marsh Posté le 24-05-2002 à 14:58:14    

ninja sky a écrit a écrit :

 
 
bah tu definis un style pour le textarea et le tour est joué  




 
 :??:  
 
tu vois qd tu postes ici, look le code de la page :
     ça indente, il devrait y avoir plusieurs espaces dans le code
tandis qu'entre chaque mot, il n'y a pas de  
 
qu'entends tu par style sur le textarea ?

 

[jfdsdjhfuetppo]--Message édité par ethernal le 24-05-2002 à 14:59:18--[/jfdsdjhfuetppo]


---------------
...oups kernel error...
Reply

Marsh Posté le 24-05-2002 à 15:01:52    

ethernal a écrit a écrit :

 
 
 :??:  
 
tu vois qd tu postes ici, look le code de la page :
     ça indente, il devrait y avoir plusieurs espaces dans le code
tandis qu'entre chaque mot, il n'y a pas de  
 
qu'entends tu par style sur le textarea ?  
 
 




 
heu ouais nan rien :D
 
mais je vois tjs pas l'interet de ta transformation :D

Reply

Marsh Posté le 24-05-2002 à 15:08:21    

des espaces a la suite peuvent etre tronques par un saut de ligne pas les   (si g bien compris)


---------------
All we need is a soul revolution
Reply

Marsh Posté le 24-05-2002 à 15:34:57    

suis si movais que ça en explication ??  :??:  :cry:  
 
je veux mettre de l'indentation lors de l'affichage (en html donc) des messages que les utilisateurs envoient (par l'intermédiaire d'un formulaire avec textarea).
C'est un classique non ?? rassurez moi ??
 
Si je remplace tout les ' ' par '&nbps;', entre chaque mot il va m'en taper un !! :( (ça alourdi bien une page, je dois dire que j'ai rarement vu mieux :D).
 
Dans du code html, tu peux mettre une suite de 40 espaces, lorsque tu vas le lire avec un browser, tu auras l'impression qu'il n'y en a qu'1 seul (si tu regardes le code, il y en a bien 40).
 
D'ou la nécessité de remplacer une suite d'espaces '   ' en ' ...'.

 

[jfdsdjhfuetppo]--Message édité par ethernal le 24-05-2002 à 15:35:54--[/jfdsdjhfuetppo]


---------------
...oups kernel error...
Reply

Marsh Posté le 28-05-2002 à 23:06:12    

[:_________]


---------------
...oups kernel error...
Reply

Marsh Posté le 28-05-2002 à 23:19:16    

moi j'ai super bien compris ton pb, mais je vois vraiment pas comment faire dans la pratique.
 
faut rechercher les suites de plus de deux espaces et les extraire (regexp)
 
compter le nombre d'espace
 
remplacer chaque occurence par  


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 29-05-2002 à 01:14:20    

thx au moins je ne suis pas aussi mauvais qu'ils veulent me le faire croire :lol:
 je vais finir par abandonner :(
[test on]
indentation on  
123456789
      6
   3
  2
    4
        8
123456789
[/test on]
 
bon bha on va appliquer le principe de ce forum de référence ;)
$string= str_replace('  ','  ', $string);

 

[jfdsdjhfuetppo]--Message édité par ethernal le 29-05-2002 à 01:24:36--[/jfdsdjhfuetppo]


---------------
...oups kernel error...
Reply

Marsh Posté le 29-05-2002 à 08:29:25    

dans ce cas ta ligne peut faire 10 000 caracteres nan ??


---------------
All we need is a soul revolution
Reply

Marsh Posté le 29-05-2002 à 11:28:39    

pq ?
si tu parles de césure, comme pour deux espaces introduits par l'utilisateur, je met un espace et un  , la ligne sera coupée automatiquement en fct de la mise en page.
 
je comprends pas trop la question ? (à mon tour ;) )


---------------
...oups kernel error...
Reply

Marsh Posté le 29-05-2002 à 11:35:20    

a pardon j'avais vu remplacer chaque espace par un   je comprenais plus la c ok  :jap:

Reply

Marsh Posté le 29-05-2002 à 11:50:05    

cété la parade qui tue ;)


---------------
...oups kernel error...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed