Value array dans argument d'une fonction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Value array dans argument d'une fonction

par Invité » 17 mars 2006, 21:14

Alors je vais expliquer, c'est tout simple, enfin sur le papier,

Je désires pour l'instant remplacer dans mon texte ($text) toutes les occurences des clefs de l'$array_img présentes et les remplacer par leur valeur respectives de cet $array_img.

Mais je suis vraiment nul à ne pas arriver à faire ça :(

Et dire que va falloir que je m'adonnes bientôt à utiliser les classes, je sens déjà comme des maux de têtes...

Heureusement j'adores le php :D

par Truc » 16 mars 2006, 23:20

Pas mieux je ne somprend pas ce que tu veux faire...

en tout cas il faut affecter le retour de str_replace() à la varaible $texte

par jpaul » 16 mars 2006, 22:55

Alors voilà, j'ai essayé en faisant comme tu as dis, mais j'y suis pas arrivé :?

J'ai donc essayé autrement, mais ça ne fonctionne toujours pas.
function remplace_img($text, $array_img)
    {
        foreach($array_img as $key => $value)
        {
            //str_replace('[', '<img src="images/smileys/' . $value . '.gif" alt="' . $value . '"', $text);
            //str_replace(']', ' />', $text);
            str_replace($key, $value, $text);
        }
        //$value_img = $array_img($key => $value);
        //str_replace('[', '<img src="images/smileys/' . $value_img . '.gif" alt="' . $value_img . '"', $text);
        //str_replace(']', ' />', $text);
        return $text;
    }
J'ai décidément beaucoup de mal avec les tableaux :cry:

Je comprends pas pourquoi ça ne me remplace pas les clefs par les valeurs.
Je ne vois pas trop ce que tu veux faire mais peut être que si tu peux ajouter un echo le temps de la mise au point, ça t'aidera à corriger.
Moi je tenterais un echo "<BR>key=".$key.", value=".$value.", text=".$text;

Je pense qu'une partie du problème vient du fait que tu indiques que tu veux faire str_replace des/du '[' et des/du ']'.
Hors $key ne contient que l'indice...

par spirou » 16 mars 2006, 20:31

Alors voilà, j'ai essayé en faisant comme tu as dis, mais j'y suis pas arrivé :?

J'ai donc essayé autrement, mais ça ne fonctionne toujours pas.
function remplace_img($text, $array_img)
    {
        foreach($array_img as $key => $value)
        {
            //str_replace('[', '<img src="images/smileys/' . $value . '.gif" alt="' . $value . '"', $text);
            //str_replace(']', ' />', $text);
            str_replace($key, $value, $text);
        }
        //$value_img = $array_img($key => $value);
        //str_replace('[', '<img src="images/smileys/' . $value_img . '.gif" alt="' . $value_img . '"', $text);
        //str_replace(']', ' />', $text);
        return $text;
    }
J'ai décidément beaucoup de mal avec les tableaux :cry:

Je comprends pas pourquoi ça ne me remplace pas les clefs par les valeurs.

par Truc » 15 mars 2006, 23:33

Salut,

que comptes tu faire avec cette fonction ?

tu peux tout simplement passer un tableau en paramètre et mais pas comme tu l'as fait:
function remplace_img($text, $array_img)
    {
        $value_img = $array_img[manque un indice];
        str_replace('[', '<img src="images/smileys/' . $value_img . '.gif" alt="' . $value_img . '"', $texte);
        str_replace(']', ' />', $texte);
    }
mais il manque un indice pour la place dans le tableau.

Value array dans argument d'une fonction

par spirou » 15 mars 2006, 20:55

Bonsoir à tous :D

J'ai de nouveau un petit souci :mrgreen:

Et comme souvent, avec un array...

J'ai fait un petit truc pour remplacer mes images dans un texte, et dans un argument de ma fonction, je dois avoir les values d'un array.

Ce que j'ai fait :
    function remplace_img($text, $array_img => $value_img)
    {
        str_replace('[', '<img src="images/smileys/' . $value_img . '.gif" alt="' . $value_img . '"', $texte);
        str_replace(']', ' />', $texte);
    }
Mais ça m'indique une erreur :
Parse error: parse error, unexpected T_DOUBLE_ARROW, expecting ')'

Comment faut-il procéder pour avoir le value de array dans mon argument ?

J'ai essayé plusieurs syntaxes, mais j'ai à chaque fois le même message d'erreur.

Merci.