10
votes

Comment se bloque tous les articles d'un tableau à la fois?

J'ai besoin de Stripslashes Tous les articles d'un tableau à la fois.

aucune idée de comment puis-je faire cela?

php

1 commentaires

Méfiez-vous que la plupart des réponses jusqu'à présent vont aveugemment tout jeter à la chaîne. Cela peut être un pro ou un con dépendant de vos besoins.


6 Réponses :


26
votes
function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}


$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

print_r($array);

1 commentaires

Je ne peux pas vous donner suffisamment de upvotes pour cela :) Après avoir passé une journée entière à essayer chaque solution, je pouvais trouver (en JQuery et PHP) pour résoudre la damn Double citation s'échappant de l'objet Damn JSON, votre solution a fonctionné comme un charme!! :)



5
votes

Vous pouvez utiliser array_map : xxx


4 commentaires

Cela donne un avertissement: Stripslashes () s'attend à ce que le paramètre 1 soit une chaîne,


@JDOEF: Donc, votre tableau ne contient pas seulement des chaînes?


pas nécessairement. ne peut pas vérifier le script s'il s'agit de la chaîne, puis déverser uniquement les barres obliques


@Jdoef: Eh bien, vous pouvez écrire votre propre fonction comme FOO FOO (Array $ Arr) {$ ret = tableau (); foreach ($ Arr comme $ clé => $ VAL) {if (is_string ($ val)) $ val = stripslashes ($ val); $ rete [$ clé] = $ val; } Retour $ RET; }



0
votes

Array d'analyse récursivement, avec cette solution, vous n'avez pas à dupliquer votre tableau

function addslashes_extended(&$arr_r){
    if(is_array($arr_r))
    {
        foreach ($arr_r as &$val){
            is_array($val) ? addslashes_extended($val):$val=addslashes($val);
    }
        unset($val);
    }
    else
        $arr_r=addslashes($arr_r);
return $arr_r;
}


0 commentaires

13
votes

pour les tableaux uni-dimensionnels, array_map fera: xxx

pour les tableaux multidimensionnels, vous pouvez faire quelque chose comme: xxx

Ce dernier peut être utilisé pour réparer magic_quotes, voir ce commentaire .


0 commentaires

4
votes

J'ai trouvé cette classe / fonction xxx

sur cette blog et cela m'a vraiment aidé, et maintenant je pourrais passer des variables, des tableaux et des objets tout au long de la même fonction ...


0 commentaires

-2
votes

Toute fonction récursive pour la matrice:

$ Résultat = récursiver_of_array ($ TRAY, 'Stripslashes'); CODE> P>

function Recursiver_of_Array($array,$function_name=false){ 
  //on first run, we define the desired function name to be executed on values
    if ($function_name) { $GLOBALS['current_func_name']= $function_name; } else {$function_name=$GLOBALS['current_func_name'];}
  //now, if it's array, then recurse, otherwise execute function
    return is_array($array) ? array_map('Recursiver_of_Array', $array) : $function_name($array); 
}


1 commentaires

Je pense qu'une réponse d'un utilisateur de 12k doit être plus descriptive et pas si forte.