Heim > Artikel > Backend-Entwicklung > So konvertieren Sie ein JS-Array in ein PHP-Array
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('php://input'), 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['json_input']; // 将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['jsArr']; // 进行相应的处理 // ...... // 将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['eval']); // 将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:
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!