IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Php: str_replace étrange...


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Php: str_replace étrange...
    Bonjour je débute en PHP et voila mon probleme:
    lors de l'utilisation de la commande str_replace les remplacement s'éffectuent correctement, sauf pour la derniere instruction il n'y a aucun remplacement effectué. J'avoue m'être cassé la tête dessus... Mais je ne trouve pas. Donc si qqn sait merci de répondre a ce post

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	$cmd = `tree`;
    	$cmd = str_replace("Ä","-",$cmd);
    	$cmd = str_replace("À","|",$cmd);
    	$cmd = str_replace("Ã","|",$cmd);
    	$cmd = str_replace("³"," ",$cmd);
    	$cmd = str_replace(",","é",$cmd); //ne fonctionne pas (aucun remplacement)
    	echo "<pre>";	
    	echo $cmd;
    	echo "</pre>";
    Merci

  2. #2
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Bizarre, peut-être un problème d'encoding ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je sais pas. Mais vraiment ce qu'il y a de plus étrange c'est que pour les autres ca marche. Et logiquement quand il y en a un qui marche normalement tout les autres doivent marcher :d....

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, quand tu dis "ne fonctionne pas" : rien n'est remplacé : le remplacement est erronné :...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Il n'y a pas de remplacement en d'autre terme, il reste des virgules. :s

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    bon par depit j'essaye une solution "foireuse". Vu qu'il n'y a des caractéres accentués uniquement sur la premiere ligne. Je me dit pas grave je supprime la premiere ligne et voila tout mais non PHP ne l'entends pas de cet oreille qd j'emploie la fonction substr au lieu de me supprimer les premiers caracteres il préfére ne rien afficher. Alors est ce moi qui est de la malchance ou est ce que mon code est problematique. A vous de me le dire!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    	$cmd = `tree`;
     
    	$cmd = substr($cmd,10);
     
    	$cmd = str_replace("Ä","-",$cmd);
    	$cmd = str_replace("À","|",$cmd);
    	$cmd = str_replace("Ã","|",$cmd);
    	$cmd = str_replace("³"," ",$cmd);
    	echo "<pre>";	
    	echo $cmd;
     
    	echo "</pre>";

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Juste deux suggestions en passant : utiliser les guillemets corrects (cf. ici) et utiliser une fonction de remplacement par tableaux comme strtr().

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour tes réponses précises . Bon j'ai fait les tests avec strtr et j'obtient strictement la meme chose à savoir aucun remplacement sur les "," mais des remplacements pour tout les autres charatères.

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ah ouais, non, je n'ai pas dit que ça allait régler ton problème :/
    Je crois que ce problème (ou similaire) a été posté il y a quelques jours. Finalement, il me semble que le caractère n'était pas celui attendu mais un autre, très légèrement différent...
    Essaie de convertir le tien en ASCII, en hexa ou en un autre truc du style, puis compare à la même conversion faite sur une vraie virgule ?


    [Edit] S'il y avait moyen d'avoir la chaîne que tu utilises pour tester, peut-être pourrions-nous mieux t'aider que par de la théorie hasardeuse ?

  10. #10
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, et si tu essaies de remplacer la virgule par un caractère non accentué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cmd = str_replace(',','a',$cmd);
    Ca donne quoi :

  11. #11
    Membre régulier Avatar de BGDC
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 102
    Points : 121
    Points
    121
    Par défaut
    Bjr,

    je pense deja que c'est normal que $cmd ne contienne rien ds ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cmd = `tree`; 
    $cmd = substr($cmd,10);
    la zone fait 4 de long et tu recupere a partir de la postion 10 !!!

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord BGDC `tree` n'indique pas la présence du chaine de caratères, mais de l'exécution d'une commande dans un shell... et ma réponse et donc tape cette commande dans une console et tu veras que la sortie fait bien plus de 10 caractères...

    Nesmontou, j'ai deja essayé de faire ca, mais pas de résultat, comme je m'y attendais.

    MAis, j'ai la solution, comme macbook l'avait au départ dit, il s'agit en fait ici d'un probleme d'encodage. La solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $cmd = `tree`;
    echo nl2br(utf8_decode($rep));
    Je pense qu'il serait utile pour éviter que de futur personnes se posent la question comme moi j'ai pu me la poser, de poster ce code dans la FAQ...

    merci à tous!

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    oups, désolé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cmd = `tree`; 
    echo nl2br(utf8_decode($cmd));

  14. #14
    Membre régulier Avatar de BGDC
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 102
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par Abused
    Tout d'abord BGDC `tree` n'indique pas la présence du chaine de caratères, mais de l'exécution d'une commande dans un shell... et ma réponse et donc tape cette commande dans une console et tu veras que la sortie fait bien plus de 10 caractères...
    Autant pour moi

Discussions similaires

  1. Silverlight et Php : comportement étrange
    Par boudit dans le forum Silverlight
    Réponses: 4
    Dernier message: 12/07/2011, 11h10
  2. [php] str_replace et strpos
    Par NeoKript dans le forum Langage
    Réponses: 7
    Dernier message: 28/10/2009, 20h13
  3. erreur php très étrange suite changement serveur
    Par taka10 dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2007, 15h18
  4. [PHP-JS] étrange autocompletion capricieuse
    Par lodan dans le forum Langage
    Réponses: 9
    Dernier message: 22/08/2006, 16h01
  5. PHP str_replace
    Par carlos20 dans le forum Langage
    Réponses: 14
    Dernier message: 02/12/2005, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo