Google
Web dns.bdat.net

Pasar un array por URL

Una URL no permite pasar un valor array, por lo que tendremos que convertirla en un dato simple y en la página destino deshacer el cambio. Utilizamos las funciones serialize() para compactar un array y unserialize para volver a pasar el valor compactado a un dato de tipo array. También tendremos que usar las funciones urlencode() para garantizar que todos los valores pasados son válidos para la URL y stripslashes() para eliminar las contrabarras que se añaden para proteger ciertos caracteres.

A continuación vemos un ejemplo:

<?php
echo '<head>
            
              <title>'.$_SERVER[PHP_SELF].'</title>
            
      </head>
            
      <html>
            
      <body>';
// mostramos el array recibido
            
if (isset($_GET[mi_var_array]))
            
{
            
      $a=stripslashes ($_GET[mi_var_array]);
            
      $mi_array=unserialize($a);
            
      foreach ($mi_array AS $clave => $valor)
            
              echo "$clave ----> $valor <br>";
            
}             
            
// Creamos un array
            
$mi_pasa_array=array("Spiderman" =>354, "Shrek2" =>462, "CatWoman" => 286);
$compactada=serialize($mi_pasa_array);
            
$compactada=urlencode($compactada);
            
echo "<p>";
            
echo "<a href=$_SERVER[PHP_SELF]?mi_var_array=$compactada>Recargar la Página</a>";
echo '</body>
            
      </html>';
?>