Obtener y leer datos en PHP

Olorunfemi Akinlua 30 enero 2023
  1. Métodos GET vs POST en PHP
  2. Obtenga y lea la entrada del usuario con file_get_content() y php://input en PHP
  3. Obtenga y lea la solicitud con file_get_content() y json_decode() en PHP
Obtener y leer datos en PHP

Nos encontraremos con diferentes contenidos a medida que desarrollemos aplicaciones PHP. De vez en cuando, necesitaremos leer archivos y obtener contenido de usuarios, otras fuentes y aplicaciones.

En PHP y la mayoría de los lenguajes de programación, existen diferentes medios y procesos que podemos utilizar para obtener contenido de solicitud y lectura. Las funciones integradas, como file_get_content(), json_decode() nos permiten obtener el contenido y decodificar archivos JSON, y envoltorios como php://input para leer datos sin procesar del cuerpo de la solicitud .

Este artículo discutirá las funciones que podemos usar para obtener solicitudes, entradas de usuarios y leer datos en PHP.

Métodos GET vs POST en PHP

Para obtener datos, tenemos que transferirlos de una fuente a otra; un caso de uso predominante es de cliente a servidor o viceversa. Para hacerlo, necesitamos dos métodos populares, GET y POST.

El método GET solicita datos de un recurso específico, y el método POST envía datos a un servidor para crear o actualizar un recurso. Sin embargo, solo se permiten caracteres ASCII dentro del método GET.

Dejando de lado las diferencias, debemos considerar las API (Interfaces de programación de aplicaciones), que son los medios de facto para conectarse con diferentes aplicaciones. La mayoría de las API proporcionan sus datos en formato JSON para que nosotros, el usuario final, los lea o use.

Obtenga y lea la entrada del usuario con file_get_content() y php://input en PHP

El contenedor php://input nos permite leer datos POST sin procesar y proporciona un enfoque alternativo que requiere menos memoria sin procesos de configuración de PHP (directivas especiales php.ini). Además, podemos tratar php://input como un nombre de archivo que podemos usar en cualquier lugar dentro de nuestra base de código dentro del contexto del proceso file_get_content().

Para darle sentido a esta explicación, hagamos un proceso de inicio de sesión simple que usará file_get_content() y el envoltorio php://input para leer los datos de los usuarios del formulario. El formulario HTML utiliza el método POST para enviar los datos de los usuarios al api.php.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div>
        <form action="api.php" method="POST">
            <form method="POST">
                <label for="emai">Email address:</label><br>
                <input type="text" id="email" name="email"><br>
                <label for="password">Password:</label><br>
                <input type="text" id="password" name="password">
                <br><br>
                <button type="submit" name="btn_login" value="btn_login"> Login </button>
            </form>
    </div>
</body>

</html>

El api.php usa la función y el envoltorio y muestra la información usando la función var_dump().

<?php

$data2 = file_get_contents('php://input');
var_dump($data2);

?>

El formulario HTML con la entrada del usuario se muestra a continuación:

Página de inicio de sesión para recopilar información del usuario

El procesamiento api.php de la entrada del usuario se muestra a continuación:

Datos procesados ​​utilizando la entrada de PHP

Obtenga y lea la solicitud con file_get_content() y json_decode() en PHP

Para leer un archivo JSON, podemos usar la función integrada file_get_content() para leer el archivo JSON y luego decodificar la cadena que obtenemos con la función json_decode().

JSON (JavaScript Object Notation) es un formato de archivo estándar abierto que almacena datos en formato de par de claves como una cadena. Con la función json_decode(), podemos procesar el par de claves y crear una matriz u objetos asociativos que PHP entienda.

Aparte de la cadena en la función file_get_content(), hay otro argumento importante, el parámetro associative. Se puede establecer en dos valores: verdadero o falso; si es verdadero, la cadena se almacenará en un array asociativa y, si es falso, se almacenará como un objeto.

Leamos este archivo JSON:

[
  {
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
  },
  {
    "userId": 1,
    "id": 2,
    "title": "qui est esse",
    "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
  },
  {
    "userId": 1,
    "id": 3,
    "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
    "body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
  },
  {
    "userId": 1,
    "id": 4,
    "title": "eum et est occaecati",
    "body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
  },
  {
    "userId": 1,
    "id": 5,
    "title": "nesciunt quas odio",
    "body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque"
  }
]

Usando este código PHP, podemos almacenar el archivo JSON como un array asociativa y leer el primer elemento del array.

<?php

$user_json = file_get_contents('user.json');

$users = json_decode($user_json, true);

print_r($users[0]);

También podemos usar el bucle foreach para leer todos los títulos en el archivo JSON.

<?php

$user_json = file_get_contents('user.json');

$users = json_decode($user_json, true);

foreach($users as $user) {
    print_r($user['title']);
    echo "\n";
}

La salida del fragmento de código es:

sunt aut facere repellat provident occaecati excepturi optio reprehenderit
qui est esse
ea molestias quasi exercitationem repellat qui ipsa sit aut
eum et est occaecati
nesciunt quas odio

Sin embargo, si queremos leer datos JSON directamente desde la API, podemos usar la biblioteca cURL y la función json_encode. Puede consultar este código de ejemplo en GitHub.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Artículo relacionado - PHP JSON