Ves al contingut
Racó Tècnic
Torna enrere

Obtener datos POST de manera rápida y sencilla con PHP

Edita la pàgina

Haciendo un poco de orden por el ordenador he encontrado una función que hice para el último trabajo en el que estuve. Me dedicaba sobre todo a crear aplicaciones de entrada de datos mediante PHP, así que me pasaba el día recuperando información POST.

Harto de pasarme el día haciendo esto:

$variable = array($_POST['var1'],$_POST['var2'],$_POST['var3'],$_POST['varN']);

…decidí hacer una función que me hiciera la tarea un poco más sencilla; aquí está:

function fillPost($keys, $exclude = null)
{
  $array = array();
  // Fem un bucle amb tota la informació post
  foreach ($_POST as $key => $val) {
    // Si la variable keys és un array
    if (is_array($keys)) {
      // I la clau actual és dins de l'array, llavors afegim la clau i el valor en el nou array
      if (in_array($key, $keys)) {
        $array[$key] = $val;
      }
    // Si no és array i el seu contingut és exactament ALL
    } elseif ($keys === 'ALL') {
      // Si l'exclude és especificat
      if (isset($exclude)) {
        // És un array
        if (is_array($exclude)) {
          // I la clau actual NO hi és en l'array, llavors afegim la clau i el valor en el nou array
          if (!in_array($key,$exclude)) {
            $array[$key] = $val;
          }
        // Sinó és un array
        } else {
          if ($key != $exclude) {
            $array[$key] = $val;
          }
        }
      // Si no especifiquem l'exclude afegim tots els valors
      } else {
        $array[$key] = $val;
      }
    // Si no és cap de les anteriors (únicament especifiquem una clau) la retornem amb el seu valor
    } else {
      return $_POST[$keys];
    }
  }
  return $array;
}

¿Qué hace?

Recupera toda la información POST y la vuelca en un array según las claves que le hayamos especificado. Este array generado es un array asociativo con las mismas claves que las recibidas vía POST.

Podemos recuperar las claves deseadas (pasándolas en un array) o bien podemos recuperarlas todas (indicando “ALL”).

También funciona a la inversa, es decir… si le pasámos como parámetro `$keys = “ALL” y como segundo parámetro ($exclude) un array con nombres de variables POST guardará en el array todas las claves POST excepto las que hayamos indicado como segundo parámetro.

¿Cómo funciona?

array fillPost ( array/string $keys [, array/string $exclude ] )
keys Una cadena de texto o un array de cadenas de texto indicando las claves que deseamos. Si utilizamos "ALL" recuperamos toda la información. exclude Una cadena de texto o un array de cadenas de texto indicando las claves que NO deseamos incluir (útil utilizando "ALL" como parámetro keys. Variables que retorna Un array asociativo.

Comentarios del código (traducidos)

Ejemplos

Recuperando algunas claves $_POST:

$datos = array('nombre', 'password', 'email');
$post = fillPost($datos);
print_r($post);

Salida aproximada:

Array
(
    ['nombre'] => "Valor de la variable $_POST['nombre']"
    ['password'] => "Valor de la variable $_POST['password']"
    ['email'] => "Valor de la variable $_POST['email']"
)

Recuperando todas las claves $_POST menos algunas:

$excluir = array('nombre', 'password', 'email');
$post = fillPost('ALL', $excluir);
print_r($post);

Salida aproximada:

Array
(
    ['avatar'] => "Valor de la variable $_POST['avatar']"
    ['fecha_nacimiento'] => "Valor de la variable $_POST['fecha_nacimiento']"
    ['cualquierVariablePostQueNoEstéEnExclude'] => ....
)

Todavía se podría mejorar un poco añadiendo un tercer parámetro por referencia (por si nos interesa modificar la tabla por refencia) y probablemente alguna cosilla más, pero eso ya os lo dejo a vuestro gusto :)

Comentaris arxivats (1)

Els comentaris estan tancats. Aquests comentaris provenen de l'antic lloc de WordPress i només es poden llegir.

  1. Miguel Angel

    Gracias amigo por compartir tu conocimiento realmente me sirvio mucho en mi proyecto.


Edita la pàgina
Comparteix aquest article:

Article anterior
Hosting PHP + MySQL gratuït amb 6GB d'espai
Article següent
Cambiar máquina virtual de Java (JVM) en Eclipse 3.4.x