Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie ein JS-Array in ein PHP-Array

So konvertieren Sie ein JS-Array in ein PHP-Array

PHPz
PHPzOriginal
2023-03-22 11:24:361601Durchsuche

Da JavaScript (JS) und PHP in der Webentwicklung die beiden am häufigsten verwendeten Programmiersprachen sind, sind Arrays im Entwicklungsprozess unvermeidlich. Als Reaktion auf diese Situation müssen wir häufig JS-Arrays in PHP-Arrays konvertieren. Es gibt viele Möglichkeiten, diese Funktion zu erreichen, und sie werden im Folgenden einzeln vorgestellt.

Methode 1: Verwenden von AJAX-Anfragen

Im Front-End- und Back-End-Trennungsentwicklungsmodus verwenden Front-End- und Back-End-Anwendungen normalerweise AJAX-Anfragen zur Kommunikation. Daher können wir AJAX-Anfragen verwenden, um das JS-Array an den Hintergrund zu senden. Nachdem der Hintergrund es empfangen hat, kann er es entsprechend verarbeiten und das JS-Array in ein PHP-Array konvertieren.

Der JS-Code lautet wie folgt:

// 定义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);
    }
}

Der PHP-Code lautet wie folgt:

<?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);
?>

Obwohl diese Methode relativ einfach zu implementieren ist, kann es bei einer Anfrage mit einer großen Datenmenge zu einer Überlastung des Servers kommen Reaktionszeit Relativ langsam.

Methode 2: Verstecktes Formular zum Übergeben verwenden

Eine andere Methode besteht darin, ein HTML-Formular zum Übergeben des JS-Arrays zu verwenden. Die spezifische Methode besteht darin, das JS-Array in das JSON-Format zu konvertieren und es dann in einem versteckten HTML-Format zu übertragen. Nach dem Empfang der JSON-Daten im Hintergrund wird das JSON in ein PHP-Array konvertiert.

Der JS-Code lautet wie folgt:

// 定义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();

Der PHP-Code lautet wie folgt:

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

Diese Methode ist einfach zu verwenden, kann jedoch bei großen Datenmengen zu einer gewissen Belastung des Servers führen.

Methode 3: Verwenden Sie die jQuery-Bibliothek, um AJAX-Anfragen zu stellen.

Wenn Sie die jQuery-Bibliothek in Ihrem Projekt verwenden, ist es sehr einfach, mit der jQuery-Bibliothek ein JS-Array in ein PHP-Array zu konvertieren.

Der JS-Code lautet wie folgt:

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

Der PHP-Code lautet wie folgt:

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

Diese Methode ist einfach und bequem zu verwenden und kann auch weitere AJAX-Funktionen unterstützen, z. B. die Verwendung von formData zum Hochladen von Dateien. Beachten Sie jedoch, dass die Verwendung der jQuery-Bibliothek möglicherweise Auswirkungen auf die Leistung hat und relativ langsamer ist.

Methode 4: Verwenden Sie die Eval-Funktion in PHP zur Konvertierung

Es gibt eine Eval-Funktion in PHP, die einen String als PHP-Code ausführen kann. Daher können wir diese Funktion verwenden, um den Inhalt des $js-Arrays als Original-PHP-Code auszuführen und das JS-Array in ein PHP-Array zu konvertieren.

Der JS-Code lautet wie folgt:

// 定义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);
    }
});

Der PHP-Code lautet wie folgt:

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

Obwohl diese Methode nur sehr wenig Code erfordert, besteht ein gewisses Risiko bei der Verwendung der Eval-Funktion zum Ausführen des JS-Codes Wenn dies nicht kontrolliert wird, kann es zu Sicherheitsrisiken kommen.

Zusammenfassung

Je nach unterschiedlichen Anforderungen und Entwicklungsumgebungen werden oben vier Methoden zum Konvertieren von JS-Arrays in PHP-Arrays vorgestellt. Jede Methode hat ihre eigenen Vor- und Nachteile:

  • Verwenden Sie AJAX-Anfragen: Die Ausführungseffizienz ist relativ gering, die Auslastung des Servers ist hoch und die Gesamtdatengröße sollte nicht zu groß sein.
  • Versteckte Formulare für die Übertragung verwenden: Die Implementierung ist relativ einfach, die Gesamtdatengröße sollte jedoch nicht zu groß sein, da dies den Server stark belasten kann.
  • Verwenden Sie die jQuery-Bibliothek für AJAX-Anfragen: Die Implementierung ist einfach und bequem, aber die Leistung ist relativ gering.
  • Verwenden Sie die Eval-Funktion in PHP zur Konvertierung: Es wird weniger Code geschrieben, aber die Verwendung der Eval-Funktion erfordert eine strenge Überprüfung der Eingabedaten, um Sicherheitsprobleme zu vermeiden.

Daher ist es in der tatsächlichen Entwicklung notwendig, die geeignete Methode entsprechend den spezifischen Anforderungen auszuwählen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein JS-Array in ein PHP-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn