Maison  >  Article  >  développement back-end  >  Comment mettre un tableau dans une URL et le transmettre en php

Comment mettre un tableau dans une URL et le transmettre en php

PHPz
PHPzoriginal
2023-04-26 09:21:541192parcourir

En PHP, vous pouvez utiliser des tableaux pour stocker un ensemble de données et transmettre les données à d'autres pages ou systèmes dans un certain format. Mettre le tableau dans l'URL et le transmettre est une méthode courante.

La transmission du tableau dans l'URL peut être réalisée des deux manières suivantes :

  1. Utilisez la méthode de requête GET et sérialisez le tableau

La méthode de requête GET peut ajouter des données à l'URL sous la forme de paires clé-valeur À la fin, nous pouvons sérialiser le tableau, puis transmettre la chaîne sérialisée via l'ajout d'URL.

L'implémentation est la suivante :

<?php
// 将数组进行序列化,结果是一个字符串
$data = array(&#39;name&#39;=>'张三', 'age'=>18, 'sex'=>'男');
$queryString = http_build_query($data);

// 假设当前页面的url是http://www.example.com/test.php,将序列化后的字符串追加在url的末尾即可
$url = 'http://www.example.com/test.php?' . $queryString;
echo $url; // 输出结果:http://www.example.com/test.php?name=%E5%BC%A0%E4%B8%89&age=18&sex=%E7%94%B7
?>

Dans l'exemple ci-dessus, nous utilisons la fonction http_build_query() pour sérialiser le tableau. Cette fonction convertit un tableau en une chaîne codée en URL. En même temps, nous ajoutons la chaîne sérialisée à la fin de l'URL de la page actuelle pour générer une nouvelle URL. http_build_query()函数将数组进行序列化。这个函数可以将数组转换成经过URL编码的字符串。同时,我们将序列化后的字符串追加在当前页面的URL末尾,从而生成新的URL。

在接收端获取URL中的数据时,我们需要使用$_GET超全局变量:

<?php
// test.php
print_r($_GET); // 输出结果:Array ( [name] => 张三 [age] => 18 [sex] => 男 )
?>

上述代码中,我们使用了$_GET超全局变量获取了URL中的数据,并且使用print_r()函数将数据打印输出。

  1. 使用POST请求方式,并且将数组直接放在请求体中

POST请求方式可以将数据传输到服务器端的请求体中,而我们可以将数组作为请求体中的数据直接传递。

实现方式如下:

<?php
// 创建一个数组
$data = array(&#39;name&#39;=>'张三', 'age'=>18, 'sex'=>'男');

// 初始化CURL,设置请求的URL、请求方式、请求体等参数
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/test.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行请求并获取响应内容
$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>

在上述示例中,我们使用了cURL库来发送POST请求,并且直接将数组放在了请求体中。在服务器端,我们可以使用$_POST超全局变量来获取POST请求传输的数据:

<?php
// test.php
print_r($_POST); // 输出结果:Array ( [name] => 张三 [age] => 18 [sex] => 男 )
?>

上述代码中,我们使用了$_POST超全局变量获取了POST请求传输的数据,并且使用print_r()

Lorsque le destinataire obtient les données dans l'URL, nous devons utiliser la super variable globale $_GET :

rrreee

Dans le code ci-dessus, nous utilisons le $_GET variable super globale Les données de l'URL sont obtenues et les données sont imprimées à l'aide de la fonction print_r().

    Utilisez la méthode de requête POST et placez le tableau directement dans le corps de la requête🎜🎜🎜La méthode de requête POST peut transférer des données vers le corps de la requête côté serveur, et nous pouvons utiliser le tableau comme requête body Les données sont transmises directement. 🎜🎜L'implémentation est la suivante : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons utilisé la bibliothèque cURL pour envoyer la requête POST et placé le tableau directement dans le corps de la requête. Côté serveur, on peut utiliser la super variable globale $_POST pour obtenir les données transmises par la requête POST : 🎜rrreee🎜Dans le code ci-dessus, on utilise le $_POST super variable globale pour obtenir Recevez les données transmises par la requête POST, et utilisez la fonction print_r() pour imprimer les données. 🎜🎜Conclusion🎜🎜La transmission de tableaux dans des URL est une méthode courante de transmission de données, mais il convient de noter que la taille et la sécurité des données doivent être prises en compte lors de la transmission des données. Nous pouvons choisir la méthode de transmission de données appropriée pour compléter la transmission de données en fonction de la situation réelle. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn