Obtenir et lire des données en PHP

Olorunfemi Akinlua 15 février 2024
  1. Méthodes GET vs POST en PHP
  2. Obtenir et lire les entrées utilisateur avec file_get_content() et php://input en PHP
  3. Obtenir et lire la requête avec file_get_content() et json_decode() en PHP
Obtenir et lire des données en PHP

Nous rencontrerons différents contenus au fur et à mesure que nous développerons des applications PHP. De temps en temps, nous aurons besoin de lire des fichiers et d’obtenir du contenu auprès d’utilisateurs, d’autres sources et d’applications.

En PHP et dans la plupart des langages de programmation, il existe différents moyens et processus que nous pouvons utiliser pour obtenir un contenu de requête et de lecture. Des fonctions intégrées, comme file_get_content(), json_decode() nous permettent de obtenir le contenu et décoder les fichiers JSON, et des wrappers comme php://input pour lire les données brutes du corps de la requête .

Cet article discutera des fonctions que nous pouvons utiliser pour obtenir des requêtes, des entrées d’utilisateurs et lire des données en PHP.

Méthodes GET vs POST en PHP

Pour obtenir des données, nous devons les transférer d’une source à une autre ; un cas d’utilisation courant est du client au serveur ou vice versa. Pour ce faire, nous avons besoin de deux méthodes populaires, GET et POST.

La méthode GET demande des données à une ressource spécifiée, et la méthode POST envoie des données à un serveur pour créer ou mettre à jour une ressource. Cependant, seuls les caractères ASCII sont autorisés dans la méthode GET.

Au-delà des différences, nous devons considérer les API (Application Programming Interfaces), qui sont le moyen de facto de se connecter à différentes applications. La plupart des API fournissent leurs données au format JSON pour que nous, l’utilisateur final, les lisions ou les utilisions.

Obtenir et lire les entrées utilisateur avec file_get_content() et php://input en PHP

Le wrapper php://input nous permet de lire les données brutes POST et fournit une approche alternative moins gourmande en mémoire sans processus de configuration PHP (directives php.ini spéciales). De plus, nous pouvons traiter php://input comme un nom de fichier que nous pouvons utiliser n’importe où dans notre base de code dans le contexte du processus file_get_content().

Pour donner du sens à cette explication, faisons un processus de connexion simple qui utilisera le file_get_content() et le wrapper php://input pour lire les données des utilisateurs à partir du formulaire. Le formulaire HTML utilise la méthode POST pour envoyer les données des utilisateurs à 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>

Le api.php utilise la fonction et le wrapper et affiche les informations à l’aide de la fonction var_dump().

<?php

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

?>

Le formulaire HTML avec la saisie de l’utilisateur est illustré ci-dessous :

Page de connexion pour collecter les entrées des utilisateurs

Le traitement api.php de l’entrée utilisateur est illustré ci-dessous :

Données traitées à l&rsquo;aide de l&rsquo;entrée PHP

Obtenir et lire la requête avec file_get_content() et json_decode() en PHP

Pour lire un fichier JSON, nous pouvons utiliser la fonction intégrée file_get_content() pour lire le fichier JSON, puis décoder la chaîne que nous obtenons avec la fonction json_decode().

JSON (JavaScript Object Notation) est un format de fichier standard ouvert qui stocke les données au format de paire de clés sous forme de chaîne. Avec la fonction json_decode(), nous pouvons traiter la paire de clés et créer un tableau associatif ou objets que PHP comprend.

Outre la chaîne dans la fonction file_get_content(), il existe un autre argument important, le paramètre associative. Il peut être défini sur deux valeurs : true ou false ; si vrai, la chaîne sera stockée dans un tableau associatif, et si faux, elle sera stockée en tant qu’objet.

Lisons ce fichier 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"
  }
]

En utilisant ce code PHP, nous pouvons stocker le fichier JSON sous forme de tableau associatif et lire le premier élément du tableau dans le tableau.

<?php

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

$users = json_decode($user_json, true);

print_r($users[0]);

On peut aussi utiliser la boucle foreach pour lire tous les titres du fichier 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 sortie de l’extrait de code est :

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

Cependant, si nous voulons lire les données JSON directement depuis l’API, nous pouvons utiliser la bibliothèque cURL et la fonction json_encode. Vous pouvez consulter ceci exemple de code sur 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

Article connexe - PHP JSON