J'ai besoin de aucune idée de comment puis-je faire cela? p> Stripslashes Code> Tous les articles d'un tableau à la fois. p>
6 Réponses :
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);
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!! :)
Vous pouvez utiliser array_map code>
:
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; } code>
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; }
pour les tableaux uni-dimensionnels, pour les tableaux multidimensionnels, vous pouvez faire quelque chose comme: p> Ce dernier peut être utilisé pour réparer magic_quotes, voir array_map code> fera:
J'ai trouvé cette classe / fonction 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 ... P> p>
$ 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);
}
Je pense qu'une réponse d'un utilisateur de 12k doit être plus descriptive et pas si forte.
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.