Maison > développement back-end > Problème PHP > Comment convertir un tableau js en tableau php

Comment convertir un tableau js en tableau php

PHPz
Libérer: 2023-03-22 11:46:01
original
1620 Les gens l'ont consulté

Dans le développement Web, puisque JavaScript (JS) et PHP sont les deux langages de programmation les plus couramment utilisés, les tableaux sont inévitables dans le processus de développement. En réponse à cette situation, nous devons souvent convertir des tableaux JS en tableaux PHP. Il existe de nombreuses façons de réaliser cette fonction, et elles seront présentées une par une ci-dessous.

Méthode 1 : Utiliser les requêtes AJAX

En mode de développement de séparation front-end et back-end, les applications front-end et back-end utilisent généralement les requêtes AJAX pour communiquer. Par conséquent, nous pouvons utiliser des requêtes AJAX pour envoyer le tableau JS en arrière-plan. Une fois que l'arrière-plan l'a reçu, il peut le traiter en conséquence et convertir le tableau JS en tableau PHP.

Le code JS est le suivant :

// 定义JS数组
var jsArr = ['apple', 'banana', 'orange'];
// 新建AJAX请求
var xhr = new XMLHttpRequest();
// 设置请求的方式、发送目标页面和是否异步请求
xhr.open('POST', '处理JS数组的PHP页面地址', true);
// 设置请求头
xhr.setRequestHeader('Content-Type', 'application/json');
// 发送请求
xhr.send(JSON.stringify(jsArr));
// 监听请求
xhr.onreadystatechange = function(){
    // 当请求处理完成后进行操作
    if (xhr.readyState == 4 && xhr.status == 200) {
        // 获取后台返回的结果
        var phpArr = JSON.parse(xhr.responseText);
        console.log(phpArr);
    }
}
Copier après la connexion

Le code PHP est le suivant :

<?php
// 获取JS数组
$jsArr = json_decode(file_get_contents(&#39;php://input&#39;), true);
// 进行相应的处理
// ......
// 将JS数组转为PHP数组
$phpArr = array();
foreach ($jsArr as $value) {
    $phpArr[] = $value;
}
// 返回结果
echo json_encode($phpArr);
?>
Copier après la connexion

Bien que cette méthode soit relativement simple à mettre en œuvre, si une requête avec une grande quantité de données est effectuée, le serveur peut être surchargé et le temps de réponse Relativement lent.

Méthode 2 : Utiliser un formulaire caché pour transmettre

Une autre méthode consiste à utiliser un formulaire HTML pour transmettre le tableau JS. La méthode spécifique consiste à convertir le tableau JS au format JSON, puis à le transférer dans un formulaire HTML masqué. Après avoir reçu les données JSON en arrière-plan, le JSON est converti en tableau PHP.

Le code JS est le suivant :

// 定义JS数组
var jsArr = ['apple', 'banana', 'orange'];
// 获取存储JS数组的隐藏表单元素对象
var jsonInput = document.getElementById('json_input');
// 转为JSON格式
var jsonString = JSON.stringify(jsArr);
// 将JSON字符串存储到隐藏表单中
jsonInput.value = jsonString;
// 提交表单
document.getElementById('submit_form').submit();
Copier après la connexion

Le code PHP est le suivant :

<?php
// 获取隐藏表单传递过来的JSON字符串
$jsArrJson = $_POST[&#39;json_input&#39;];
// 将JSON字符串转为PHP数组
$phpArr = json_decode($jsArrJson, true);
// 进行相应的处理
// ......
?>
Copier après la connexion

Cette méthode est simple à utiliser, mais elle peut provoquer une certaine pression sur le serveur lorsque la quantité de données est importante.

Méthode 3 : Utiliser la bibliothèque jQuery pour faire des requêtes AJAX

Si vous utilisez la bibliothèque jQuery dans votre projet, il sera très simple d'utiliser la bibliothèque jQuery pour convertir un tableau JS en tableau PHP.

Le code JS est le suivant :

// 定义JS数组
var jsArr = ['apple', 'banana', 'orange'];
// 新建AJAX请求
$.ajax({
    type: "POST",
    url: "处理JS数组的PHP页面地址",
    data: { jsArr: jsArr },
    success: function(phpArr) {
        console.log(phpArr);
    }
});
Copier après la connexion

Le code PHP est le suivant :

<?php
// 获取JS数组
$jsArr = $_POST[&#39;jsArr&#39;];
// 进行相应的处理
// ......
// 将JS数组转为PHP数组
$phpArr = array();
foreach ($jsArr as $value) {
    $phpArr[] = $value;
}
// 返回结果
echo json_encode($phpArr);
?>
Copier après la connexion

Cette méthode est simple et pratique à utiliser. L'utilisation de la bibliothèque jQuery peut également prendre en charge davantage de fonctions AJAX, telles que l'utilisation de formData pour le téléchargement de fichiers, mais cela nécessite de noter que l'utilisation de la bibliothèque jQuery peut avoir un certain impact sur les performances et sera relativement plus lente.

Méthode 4 : Utilisez la fonction eval en PHP pour la conversion

Il existe une fonction Eval en PHP, qui peut exécuter une chaîne sous forme de code PHP. Par conséquent, nous pouvons utiliser cette fonction pour exécuter le contenu du tableau $js en tant que code PHP original et convertir le tableau JS en tableau PHP.

Le code JS est le suivant :

// 定义JS数组
var jsArr = ['apple', 'banana', 'orange'];
// 将JS数组转为JSON字符串
var jsonString = JSON.stringify(jsArr);
// 拼接执行JS代码的字符串
var evalString = "return " + jsonString + ";";
// 在PHP页面中执行JS代码
$.ajax({
    url: "处理JS数组的PHP页面地址?eval=" + encodeURIComponent(evalString),
    success: function(phpArr) {
        console.log(phpArr);
    }
});
Copier après la connexion

Le code PHP est le suivant :

<?php
// 获取JS数组
$jsArr = eval($_REQUEST[&#39;eval&#39;]);
// 将JS数组转为PHP数组
$phpArr = array();
foreach ($jsArr as $value) {
    $phpArr[] = $value;
}
// 返回结果
echo json_encode($phpArr);
?>
Copier après la connexion

Bien que cette méthode nécessite très peu de code, il y a un certain risque à utiliser la fonction Eval pour exécuter le code JS si la chaîne est. non contrôlé, cela peut entraîner des risques pour la sécurité.

Résumé

Selon les différents besoins et environnements de développement, ce qui précède présente quatre méthodes de conversion de tableaux JS en tableaux PHP. Chaque méthode a ses propres avantages et inconvénients, qui sont les suivants :

  • Utilisez les requêtes AJAX : l'efficacité d'exécution est relativement faible, la charge sur le serveur est élevée et la taille totale des données ne doit pas être trop importante.
  • Utiliser des formulaires cachés pour la transmission : la mise en œuvre est relativement simple, mais la taille totale des données ne doit pas être trop importante, ce qui pourrait exercer une plus grande pression sur le serveur.
  • Utilisez la bibliothèque jQuery pour les requêtes AJAX : la mise en œuvre est simple et pratique, mais les performances sont relativement faibles.
  • Utilisez la fonction eval en PHP pour la conversion : moins de code est écrit, mais l'utilisation de la fonction eval nécessite une vérification stricte des données d'entrée pour éviter les problèmes de sécurité.

Par conséquent, dans le développement réel, il est nécessaire de choisir la méthode appropriée en fonction des besoins spécifiques.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal