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 :

[Tableaux] Problème avec remplacement dans chaîne


Sujet :

Langage PHP

  1. #1
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut [Tableaux] Problème avec remplacement dans chaîne
    Bonjour

    Je veut introduire des smileys dans un texte, donc il faut que je remplace les codes smileys pas leurs images. Mais j'ai un problème, en fait mon code, ne fait rien

    Le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    	//Tableau contenant tous les smileys possibles :	
    	$smiley = array( ":aie:",":ange:", ":bravo:", ":D", ":dors:",
    			  ":gne:",":grrr:",":langue:",":hello:",":koi:",":love:",
    			  ":lun:", ":merci:", ":mouarf:",":pan:", ":triste:");
     
    	$img = array("aie.gif","ange.gif","bravo.gif","D.gif","dors.gif",
    			  "gne.gif","grrr.gif","langue.gif","hello.gif","koi.gif",
    			  "love.gif","lun.gif","merci.gif","mouarf.gif","pan.gif",
    "triste.gif");
     
    	function replaceBySmiley($texte){
    		$texteAvecSmiley = str_replace($smiley, $img, $texte);
     
    		return $texteAvecSmiley;
    	}
    ?>
    Je vois pas ou est mon erreur, mais ça doit certainement être tout petit


  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Je sais pas si ça va aider, mais...
    Note de version dans la doc :
    Avant PHP 4.3.3, un bogue existait lors de l'utilisation de tableaux avec les paramètres search et replace en même temps. Les index de search qui étaient vides étaient ignorés, mais le pointeur interne de replace n'étais pas incrémenté. Cela a été corrigé en PHP 4.3.3, tout script s'appuyant sur ce bogue, doit supprimer les entrées vides avant d'appeler cette fonction pour imiter le comportement d'origine.
    Sinon, tu remplaces juste par le nom du fichier image ? Je ne sais pas ce que tu vas faire de ta chaîne, mais tu n'as pas besoin de balise <img> ou quoi que ce soit ?

  3. #3
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    chez moi, ta fonction marche super bien...

    Question stupide : lors de l'appel de ta fonction, tu affectes bien la valeur de retour ???

    $val_retour = replaceBySmiley($mon_texte);

    (pas taper, pas taper, on sait jamais)

  4. #4
    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

    Il y a un souci avec ta fonction : elle ne connaît pas les paramètres $smiley et $img pour des raisons de scope. Il faut que tu ajoutes ceci dedans :
    Tu te rendras certainement compte que ta fonction fait exactement la même chose que str_replace() et que, de ce fait, elle est inutile.

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Eusebius C'est juste pour tester pour le moment Je vais metttre la balise image ensuite
    Titoumini Oui quand même, et j'ai essayé en mettant return "titoumini" ca m'affiche titoumini dans tout mon livre d'or

    Citation Envoyé par Yogui
    Salut

    Il y a un souci avec ta fonction : elle ne connaît pas les paramètres $smiley et $img pour des raisons de scope. Il faut que tu ajoutes ceci dedans :
    Tu te rendras certainement compte que ta fonction fait exactement la même chose que str_replace() et que, de ce fait, elle est inutile.
    Je m'en rends compte, mais ainsi, je la mets dans un fichier à part et le nom est plus explicite

    Je vais essayer avec global.

  6. #6
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    C'était bien un problème de global

    beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Faire un remplacement dans une chaîne
    Par méphistopheles dans le forum Langage
    Réponses: 4
    Dernier message: 19/12/2006, 21h31
  2. [Tableaux] problème avec while
    Par zimotep dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2005, 10h30
  3. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37
  4. problème avec graphique dans état access
    Par petitmic dans le forum Access
    Réponses: 5
    Dernier message: 07/09/2005, 14h55
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19

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