PHP est un langage de script côté serveur largement utilisé qui nous aide à créer des applications Web et des sites Web dynamiques. En PHP, nous avons souvent besoin de recevoir des données de l’extérieur et de les utiliser pour effectuer différentes tâches. Parmi eux, recevoir un tableau externe est une tâche très courante car elle nous permet de gérer plusieurs valeurs sans avoir à les coder en dur dans le code. Dans cet article, nous expliquerons comment recevoir des tableaux externes et fournirons quelques bonnes pratiques pour garantir que votre code est valide et sûr.
1. Recevoir un tableau à partir des paramètres d'URL
Les paramètres d'URL sont des chaînes de requête spécifiées dans l'URL. Elles sont utilisées pour envoyer des données supplémentaires au serveur Web et les transmettre au script PHP. Ces paramètres peuvent contenir tout type de données, y compris des tableaux. Nous pouvons utiliser le tableau $_GET pour recevoir ces paramètres et les convertir en tableau. Voici un exemple :
<code>// URL: http://example.com?names[]=Alice&names[]=Bob&names[]=Charlie $names = $_GET['names']; print_r($names); // 输出 Array([0] => Alice [1] => Bob [2] => Charlie)</code>
Dans cet exemple, nous utilisons des paramètres d'URL pour transmettre un tableau appelé "names". Nous utilisons d'abord le tableau $_GET pour obtenir ce paramètre, puis utilisons la fonction print_r pour imprimer le contenu du tableau. Puisque nous avons utilisé le symbole "[]" pour définir le tableau, PHP convertira automatiquement le paramètre en tableau.
2. Recevoir un tableau à partir d'une requête POST
En plus de transmettre des tableaux à l'aide de paramètres d'URL, nous pouvons également utiliser la méthode POST pour envoyer des données à un script PHP. En PHP, nous pouvons utiliser le tableau $_POST pour recevoir ces données. Pour recevoir un tableau à partir d'une requête POST, il suffit d'envoyer le tableau en tant qu'élément de formulaire dans le formulaire. Voici un exemple :
<code><!-- HTML 表单 --> <form action="process.php" method="post"> <input type="text" name="names[]" value="Alice"> <input type="text" name="names[]" value="Bob"> <input type="text" name="names[]" value="Charlie"> <input type="submit" value="提交"> </form> <!-- PHP 脚本 --> $names = $_POST['names']; print_r($names); // 输出 Array([0] => Alice [1] => Bob [2] => Charlie)</code>
Dans cet exemple, nous créons un tableau appelé "names" dans un formulaire HTML et définissons le nom de l'élément du formulaire sur "names[]". Lorsque l'utilisateur soumet le formulaire, nous pouvons utiliser le tableau $_POST pour recevoir ce tableau appelé "names" et imprimer son contenu à l'aide de la fonction print_r.
3. Recevoir un tableau à partir d'une chaîne JSON
En plus des requêtes HTTP, nous pouvons également utiliser le format JSON pour transmettre des données aux scripts PHP. JSON est un format d'échange de données léger qui peut sérialiser tout type de données dans une chaîne et les transmettre entre différentes applications. En PHP, nous pouvons convertir une chaîne JSON en tableau à l'aide de la fonction json_decode. Voici un exemple :
<code>// JSON 字符串 $json = '{"names": ["Alice", "Bob", "Charlie"]}'; // 将 JSON 字符串转化为数组 $data = json_decode($json, true); // 输出数组 print_r($data['names']); // 输出 Array([0] => Alice [1] => Bob [2] => Charlie)</code>
Dans cet exemple, nous créons d'abord un tableau appelé "names" et le sérialisons dans une chaîne JSON. Nous convertissons ensuite la chaîne JSON en tableau à l'aide de la fonction json_decode et imprimons le contenu du tableau à l'aide de la fonction print_r.
Il est à noter que si nous ne définissons pas le deuxième paramètre sur true, la fonction json_decode renverra un objet au lieu d'un tableau.
4. Meilleures pratiques pour gérer les tableaux externes
Lorsque nous recevons des tableaux de l'extérieur, nous devons prendre en compte certaines bonnes pratiques pour garantir la validité et la sécurité du code. Voici quelques bonnes pratiques :
Avant de traiter un tableau externe, nous devons valider le tableau pour nous assurer qu'il contient les données correctes. Par exemple, nous pouvons vérifier si toutes les valeurs du tableau sont des entiers ou des chaînes. Cela évite certaines vulnérabilités de sécurité courantes telles que les attaques par injection SQL.
PHP fournit des filtres intégrés qui peuvent nous aider à filtrer et valider les données d'entrée. Par exemple, nous pouvons utiliser la fonction filter_input_array pour filtrer les tableaux dans les requêtes POST et GET. Cela peut nous aider à réduire la duplication de code et à améliorer la lisibilité du code.
Lorsque nous traitons de tableaux, nous devons éviter autant que possible les tableaux codés en dur. Au lieu de cela, nous devrions stocker le tableau dans un fichier de constante ou de configuration et en lire les données. Cela améliore la maintenabilité et la testabilité du code.
Lors de l'utilisation de tableaux externes, nous devons toujours utiliser le type de données correct. Par exemple, si nous devons stocker un tableau dans une base de données, nous devons utiliser le type de données SQL correct tel que « TEXTE » ou « ENTIER ».
Lorsque nous recevons un tableau de l'extérieur, nous devons empêcher les soumissions multiples des mêmes données. Par exemple, nous pouvons utiliser des identifiants uniques dans chaque élément de formulaire et utiliser des sessions ou des cookies dans des scripts PHP pour suivre les données soumises.
Conclusion
La réception de tableaux externes est une tâche très courante en programmation PHP, mais c'est aussi une tâche qui doit être manipulée avec précaution. Dans cet article, nous avons présenté des méthodes de réception de tableaux à partir de paramètres d'URL, de requêtes POST et de chaînes JSON, et avons fourni quelques bonnes pratiques pour garantir la validité et la sécurité de votre code. Nous espérons que cet article vous a été utile afin que vous puissiez développer plus efficacement des applications et des sites Web PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!