PHP:¿Cómo paso un array de un script.php a otro.php?

De Foros del Web

Hay que serializar el array para enviarlo por el URL o en un formulario en un campo "hidden" ... Y, en el script que reciba el array deberá de des-serializarlo.

A todo esto, es recomendable eliminar los slahes (\ barra invertida) que se generan si usamos magic_quotes_gpc a ON y codificar las variables con urlencode() para evitar problemas con caracteres en nuestros arrays tipo: puntos, comillas y otros caracteres.

enviar_array.php

<?
function array_envia($array) {
 
    $tmp = serialize($array);
    $tmp = urlencode($tmp);
 
    return $tmp;
}
 
$array=array("algo","nose","otracosa");
$array=array_envia($array);
 
// Usando un formulario y campo hidden.
echo <<<HTML
<form action="recibir_array.php" method="POST">
   <input name="array" type="hidden" value="$array">
   <input name="enviar" type="submit" value=" Enviar ">
</form>
HTML;
 
// Usando un link (URL).
echo "<a href=\"recibir_array.php?array=$array\">pasar array</a>";
?> 

recibir_array.php

<?
function array_recibe($url_array) {
    $tmp = stripslashes($url_array);
    $tmp = urldecode($tmp);
    $tmp = unserialize($tmp);
 
   return $tmp;
}
 
 
$array=$_GET['array'];
 // el método de envío usado. (en el ejemplo un link genera un GET. En el formulario se usa POST podría ser GET también ...)
 
$array=array_recibe($array);
 
foreach ($array as $indice => $valor){
echo $indice." = ".$valor."<br>";
}
?> 

Ahí en recibir_array.php tienes un ejemplo de como recorrer el array que has enviado . igualmente puedes acceder por su índice: $array[indice] ...

Si usásemos un formulario para enviar nuestro array ... sólo tendríamos que usar un campo hidden común de formulario y aplicar la función array_envia().


--Cluster 03 Dic 2002

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales