not - remove html tags php
¿Cómo pasar una matriz a través de $_GET en php? (4)
¿Cómo puedo pasar una o más variables de tipo array a otra página a través de $ _GET?
Siempre pasé valores variables en la forma ?a=1&b=2&c=3
¿Qué pasa con pasar a=[1,2,3]
?
¿Debo escribir un ciclo for y anexar todos los valores?
Gracias
Puede usar la sintaxis []
para pasar arrays a través de _GET:
?a[]=1&a[]=2&a[]=3
PHP entiende esta sintaxis, por lo que $_GET[''a'']
será igual a la array(1, 2, 3)
.
También puedes especificar claves:
?a[42]=1&a[foo]=2&a[bar]=3
Las matrices multidimensionales también funcionan:
?a[42][b][c]=1&a[foo]=2
http_build_query()
hace esto automáticamente:
http_build_query(array(''a'' => array(1, 2, 3))) // "a[]=1&a[]=2&a[]=3"
http_build_query(array(
''a'' => array(
''foo'' => ''bar'',
''bar'' => array(1, 2, 3),
)
)); // "a[foo]=bar&a[bar][]=1&a[bar][]=2&a[bar][]=3"
Una alternativa sería pasar arreglos codificados json:
?a=[1,2,3]
Y puedes analizar a
json_decode
:
$a = json_decode($_GET[''a'']); // array(1, 2, 3)
Y codificarlo de nuevo con json_encode:
json_encode(array(1, 2, 3)); // "[1,2,3]"
Nunca use serialize()
para este propósito . Serialize permite serializar objetos, y hay formas de hacer que ejecuten código. Por lo tanto, nunca debes deserializar cadenas que no sean de confianza.
Puede pasar una matriz asociativa a http_build_query()
y anexar la cadena resultante como cadena de consulta a la URL. La matriz será analizada automáticamente por PHP, por lo que $_GET
en la página de recepción contendrá una matriz.
Ejemplo
$query_str = http_build_query(array(
''a'' => array(1, 2, 3)
));
Simplemente repite tus $_GET
variables como esta: name=john&name=lea
Esto te da una array
.
¡Yo solía creer que sería sobrescrito!
$city_names = array(
''delhi'',
''mumbai'',
''kolkata'',
''chennai''
);
$city_query = http_build_query(array(''city'' => $city_names));
esto te dará:
city[0]=delhi&city[1]=mumbai&city[2]=kolkata&city[3]=chennai
si desea codificar los corchetes también, utilice el siguiente código:
$city_query = urlencode(http_build_query(array(''city'' => $city_names)));
Salida:
city%255B0%255D%3Ddelhi%26city%255B1%255D%3Dmumbai .....
Referencia: http_build_query , urlencode