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.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
