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 177
    J'aime reçus:
    0
    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:
    8 811
    J'aime reçus:
    242
    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:
    8 811
    J'aime reçus:
    242
    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 177
    J'aime reçus:
    0
    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 177
    J'aime reçus:
    0
    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 177
    J'aime reçus:
    0
    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 177
    J'aime reçus:
    0
    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 177
    J'aime reçus:
    0
    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
Orange.fr bloque l'acces à codeur.com avec un htaccess : erreur ou blacklisting ? Administration d'un site Web 27 Novembre 2009
Framework JS, template html/php ou Wordpress ? Débuter en référencement 26 Octobre 2019
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 14 Septembre 2019
PHP : checkdnsrr (MX) et domaine yahoo.fr Développement d'un site Web ou d'une appli mobile 5 Septembre 2019
Migration site PHP vers Gatsby : quelques questions Problèmes de référencement spécifiques à vos sites 22 Août 2019
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice