1. Pour Black Friday on FRACASSE les prix ⚡ avec RM Tech Découverte
    Rejeter la notice

Pour codeur php ... purge de caractere espaces ...

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Zecat, 6 Août 2010.

  1. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 176
    J'aime reçus:
    1
    Probleme posé :

    $var="aaaaaaa : xxxxx zzzzz wwwww"

    Donc pour résumer :

    Une expression
    Puis une serie d'espaces en nombre non connu
    puis un :
    Puis une serie d'espaces en nombre non connu
    puis une autre expression

    But : ramener la chose à :

    $var2="aaaaaaa:xxxxx zzzzz wwwww"

    Bien sur je peux boucler sur les octets un à un ou faire des str-replace dans un while mais bon on doit pouvoir faire plus propre et efficace (regex ?). Mais comme les regex et moi on est faché :mrgreen: (en fait on a jamsi commencer à se causer :roll: )

    Note : il se peut que des fois il n'y ait des epsace que devant ou que derrière ou devant et derriere le :
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 099
    J'aime reçus:
    303
    Edit: ma solution n'est pas bonne
     
  3. Netek
    Netek WRInaute discret
    Inscrit:
    5 Août 2010
    Messages:
    85
    J'aime reçus:
    0
    Ceci devrait fonctionner :

    Code:
    list($chaine1,$chaine2) = explode(':',$var);
    $chaine1 = trim($chaine1);
    $chaine2 = trim($chaine2);
    $var2 = $chaine1.':'.$chaine2;
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 099
    J'aime reçus:
    303
    Je viens de tester la solution de netek, ça fonctionne:
    Code:
    $var = "aaaaaaa : xxxxx zzzzz wwwww";
    list($chaine1,$chaine2) = explode(':',$var);
    $chaine1 = trim($chaine1);
    $chaine2 = trim($chaine2);
    $var2 = $chaine1.':'.$chaine2;
    echo $var2;
    
    Affiche: aaaaaaa:xxxxx zzzzz wwwww

    list() et explode() c'est de la balle ;)
     
  5. Netek
    Netek WRInaute discret
    Inscrit:
    5 Août 2010
    Messages:
    85
    J'aime reçus:
    0
    Oui j'adore aussi m'en servir :D
     
  6. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    728
    J'aime reçus:
    0
    P'têtre ça :
    Code:
    $str = preg_replace('`[\s]*:[\s]*`', ':', $str);
     
  7. queldomaine.com
    queldomaine.com WRInaute discret
    Inscrit:
    9 Novembre 2009
    Messages:
    94
    J'aime reçus:
    0
    Ou ceci avec une expression régulière :

    Code:
    echo preg_replace('/^([^ ]+) *: *([^ ]+) *([^ ]+) *([^ ]+)$/', '\\1:\\2 \\3 \\4', $var);
     
  8. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    0
    plus simple et plus rapide que les regexp

    Code:
    $var=str_replace("  "," ",$var);
    $var=str_replace("  "," ",$var);
    
    imparrable :mrgreen:
     
  9. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 176
    J'aime reçus:
    1
    heu t'es sur ... si y a 20 espaces devant le : ?
     
  10. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    0
    si tu veux obtenir [space]:[space] oui je suis sur, si tu ne veux pas d'espace avant et après les : tu rajoute
    Code:
    $var=str_replace(" : ",":",$var);
    testes et tu verra :wink:
     
  11. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 176
    J'aime reçus:
    1
    arf il a raison le bougre ... tu m expliques ? c'ets comme si str_replace bossait de façon recursive incluant dejà un while ! la deuxieme lame servant juste à la finition ...

    Edit : heu non desolé ca marche pas ... c'ets bien ce que je pensais :

    Code:
    <?php
    $var="aaaaaa***************:***************bbbbb ccccc ddddd";
    $var=str_replace("**","*",$var);
    echo ($var."<br>");
    $var=str_replace("**","*",$var);
    echo ($var."<br>");
    ?> 
    
    j'ai mis des etoiles pour qu'on voit mieux ... et a chaque passe il divise simplement le nombre de ** par deux ...
    Avec des blancs c'est trompeur, on peu avoir l 'impression que c'est ok mais si on regarde le source de la page avec les echo, on voit que non ...
     
  12. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 176
    J'aime reçus:
    1
    je vais garder la solution avec les trim (je ne connaissais pas ces 3 commandes) et comme de toute façon ensuite je decoupai deja sur le : ltrim et rtrim sont mes amis ... :wink:

    Note : je viens de re verifier ta soluce fandecine, et comme c'est previsible ca fonctionne pas (ca reduit de moitié a chaque passe simplement).
     
  13. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    728
    J'aime reçus:
    0
    et ma solution, ca convient pas ?
     
  14. Netek
    Netek WRInaute discret
    Inscrit:
    5 Août 2010
    Messages:
    85
    J'aime reçus:
    0
    Youpi j'ai gagné :p ^^
     
  15. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 176
    J'aime reçus:
    1
    j'ai pas regardé. trim me va tres bien :wink:
     
  16. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    0
    C'était la "joke" du jour, mais je vois que tu as vérifié dans le source :mrgreen:

    Plus sérieusement, c'est bien avec les regexp qu'il faut faire mais les solutions citées plus haut ne marchent pas, celle ci marche:

    Code:
    $chaine = "  Bonjour   :  à      tous les      wrinautes !";  
    $texte =str_replace(" : ",":", preg_replace('/\s{2,}/', ' ', $chaine));  
    echo $texte;
    
    et cette fois c'est pas une "joke" :wink:
     
  17. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    728
    J'aime reçus:
    0
    Désolé de te contredire mais la solution que j'ai suggéré fonctionne bien : http://labs.seebz.net/tests/preg_space.php
    (oui je sais, je lache pas le morceau :mrgreen: )
     
  18. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    0
    hé non ! :mrgreen:

    Voici le code source de ta page :
    Code:
      Bonjour:a     tous les      wrinautes !<hr><code><span style="color: #000000">
    <span style="color: #0000CC">&lt;?php<br /><br />$chaine&nbsp;</span><span style="color: #006600">=&nbsp;</span><span style="color: #CC0000">"&nbsp;&nbsp;Bonjour&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tous&nbsp;les&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wrinautes&nbsp;!"</span><span style="color: #006600">;&nbsp;<br />echo&nbsp;</span><span style="color: #0000CC">preg_replace</span><span style="color: #006600">(</span><span style="color: #CC0000">'`[\s]*:[\s]*`'</span><span style="color: #006600">,&nbsp;</span><span style="color: #CC0000">':'</span><span style="color: #006600">,&nbsp;</span><span style="color: #0000CC">$chaine</span><span style="color: #006600">);<br />echo&nbsp;</span><span style="color: #CC0000">'&lt;hr&gt;'</span><span style="color: #006600">;<br /><br /><br />echo&nbsp;</span><span style="color: #0000CC">highlight_file</span><span style="color: #006600">(&nbsp;</span><span style="color: #0000CC">__FILE__&nbsp;</span><span style="color: #006600">);</span>
    
    </span>
    </code>1
     
  19. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 176
    J'aime reçus:
    1
    lol

    Piégé de la meme façon par les espaces ... :mrgreen: Testez vos soluces avec des **, ca le fait mieux et ca evite de se faire pieger par les finesses d'affichage des navigateurs :wink: Donc je reste sur la soluce list + trim ... qui me va tres bien.
     
  20. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    728
    J'aime reçus:
    0
    je pige pas, y a plus d'espace autour du ":", c'est ce qu'il fallait nan ?

    'fin bref, je laisse tomber :lol:
     
Chargement...
Similar Threads - codeur php purge Forum Date
Codeur avec leur propre serveurs/hébergeurs Administration d'un site Web 11 Août 2019
Codeur.com : pour ? contre ? vos expériences Le café de WebRankInfo 23 Décembre 2015
Recherche d'un développeur/codeur Développement d'un site Web ou d'une appli mobile 8 Mars 2012
Avis au codeurs. Débuter en référencement 5 Janvier 2012
Question pour les codeurs acharnés ... Développement d'un site Web ou d'une appli mobile 27 Décembre 2009
Du php dans du javascript Développement d'un site Web ou d'une appli mobile 16 Novembre 2020
réécrire /categorie.php?id=xxx en /categorie/id URL Rewriting et .htaccess 13 Septembre 2020
Rediriger Index.php vers racine URL Rewriting et .htaccess 15 Août 2020
Galère pour supprimer index.php URL Rewriting et .htaccess 12 Août 2020
PHP Redis : Comment indexer les clés ? Développement d'un site Web ou d'une appli mobile 1 Août 2020