Necesito stripslashes
todos los elementos de una matriz a la vez.¿Cómo se descuellan todos los elementos de una matriz a la vez?
¿Alguna idea de cómo puedo hacer esto?
Necesito stripslashes
todos los elementos de una matriz a la vez.¿Cómo se descuellan todos los elementos de una matriz a la vez?
¿Alguna idea de cómo puedo hacer esto?
foreach ($your_array as $key=>$value) {
$your_array[$key] = stripslashes($value);
}
o para muchos niveles variedad utilizar este:
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);
Posiblemente no pueda darte suficientes votos a favor :) Después de pasar todo el día probando cada solución que pude encontrar y pensar (tanto en jQuery como en php) para resolver el maldito escape de maldiciones dobles del maldito objeto json, tu solución funcionó ¡¡como un encanto!! :) – Aleksej
Usted puede utilizar array_map
:
$output = array_map('stripslashes', $array);
gama Analizar recursevely, con esta solución no tiene que doblar su matriz
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;
}
Para las matrices unidimensionales, array_map
hará:
$a = array_map('stripslashes', $a);
Para matrices multidimensionales que puede hacer algo como:
$a = json_decode(stripslashes(json_encode($a)), true);
Este último puede ser utilizado para fijar magic_quotes, ver this comment.
Eso es bastante brillante. – Jake
me encontré con esta clase/función
<?php
/**
* Remove slashes from strings, arrays and objects
*
* @param mixed input data
* @return mixed cleaned input data
*/
function stripslashesFull($input)
{
if (is_array($input)) {
$input = array_map('stripslashesFull', $input);
} elseif (is_object($input)) {
$vars = get_object_vars($input);
foreach ($vars as $k=>$v) {
$input->{$k} = stripslashesFull($v);
}
} else {
$input = stripslashes($input);
}
return $input;
}
?>
en este blog y realmente me ayudó, y ahora podría pasar variables, matrices y los objetos a lo largo de la misma función ...
+1, Nice Thanks – Starx
$result= Recursiver_of_Array($array, 'stripslashes');
código:
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);
}
Creo que una respuesta del usuario de 12K debe ser más descriptiva y no tan alta. – Starx
Tenga en cuenta que la mayoría de las respuestas hasta el momento lanzarán todo a la cuerda. Eso puede ser un pro o un engaño dependiendo de tus necesidades. –