Acceder a php // input en PHP con CodeIgniter

Introducción

No sé si sólo yo lo hago, pero cuando es necesario mandar datos complejos (no simples formularios) podemos utilizar JSON para serializarlos y luego hacer el proceso inverso del otro lado.

Pero del otro lado no leeremos a $_POST sino al stream php://input. En php puro lo hacemos con file_get_contents, pero si estamos utilizando un framework, lo tenemos que hacer a su manera.

Hoy veremos cómo obtener datos del stream php://input en CodeIgniter.

Leer php://input con la propiedad raw_input_stream

Es muy, muy fácil. Simplemente accedemos a la propiedad raw_input_stream de input. Y con eso tenemos. Así se hace:

Con eso ya podemos des-serializarlos. En mi caso, utilizo JSON, así que llamaría a la función json_decode y listo, tendría los objetos/arreglos tal y como los mandé del lado del cliente.

La ventaja que ofrece este método es que, según la documentación, podemos leerlo en cualquier momento; ya que php://input sólo puede ser leído una vez.