Home  >  Article  >  Backend Development  >  How to get the frontend json array in php

How to get the frontend json array in php

王林
王林Original
2023-05-07 14:41:11824browse

As a server-side language, PHP usually uses JSON format to transmit data when interacting with the front-end. JSON (JavaScript Object Notation) is a lightweight data exchange format. Due to its simplicity, ease of understanding, and ease of use, it has become a commonly used data transmission format in Web development. When using JSON on the front end, the JSON.stringify() method is usually used to convert the data into JSON format and send requests through ajax and other methods. The backend needs to use PHP to receive and process these requests. Commonly used methods include get, post and ajax and other methods. This article will introduce how to get the front JSON array in PHP.

  1. Use the $_POST method to obtain the front-end JSON array

Normally, when the front-end uses ajax to send a POST request, the JSON data will be sent to the back-end as the data part of the request. . In PHP, this data can be obtained using the $_POST method. For example, the front-end ajax code is as follows:

$.ajax({
    type: "POST",
    url: "test.php",
    data: JSON.stringify({"name": "John", "age": 25}),
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});

In the test.php file in the background, we can use the $_POST method to obtain the JSON data sent by the front-end:

<?php
$data = json_decode(file_get_contents("php://input"), true);
print_r($data);
?>

Among them, file_get_contents("php ://input") method can obtain the data of the POST request, the json_decode method decodes the data into a PHP array, and finally uses the print_r function to output the array to the console.

  1. Use the $_GET method to obtain the front-end JSON array

In addition to the POST method, the front-end can also use the GET method to send JSON data. This method is usually used to obtain data. . For example, the front-end ajax code is as follows:

$.ajax({
    type: "GET",
    url: "test.php",
    data: {"name": "John", "age": 25},
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});

In the test.php file in the background, we can use the $_GET method to obtain the JSON data sent by the front-end. However, since the data of the GET request is not sent directly to the server, but is appended to the query string after the URL, certain processing is required on this data. For example, if JSON data is base64-encoded and then appended to the URL, the query string needs to be decoded and parsed in the background before the original JSON data can be obtained. The sample code is as follows:

Front-end code:

$.ajax({
    type: "GET",
    url: "test.php",
    data: {"json": btoa(JSON.stringify({"name": "John", "age": 25}))},
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});

Backend code:

<?php
$json = json_decode(base64_decode($_GET["json"]), true);
print_r($json);
?>

In this example, we base64-encode the JSON data through the btoa() method and pass it to Backstage. The background uses the base64_decode() method to decode the query string, then parses the decoded JSON data into a PHP array through the json_decode() method, and finally outputs it to the console.

  1. Use the file_get_contents method to obtain the front-end JSON array

In addition to the $_POST and $_GET methods, we can also use the file_get_contents method to obtain the JSON data sent by the front-end. This method is typically used for processing larger JSON data. For example, the front-end ajax code is as follows:

$.ajax({
    type: "POST",
    url: "test.php",
    data: JSON.stringify({"name": "John", "age": 25}),
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});

In the test.php file in the background, we can use the file_get_contents method to directly obtain the JSON data sent by the front-end, and use the json_decode method to decode it into a PHP array.

<?php
$data = json_decode(file_get_contents("php://input"), true);
print_r($data);
?>

Although the file_get_contents method can also be used to obtain the data of the GET request, it is not recommended to be used in actual development because the allow_url_fopen configuration item needs to be turned on when using it.

Summary

The above are several common methods to obtain the front-end JSON array in PHP. Among them, the $_POST and file_get_contents methods are more common. Using $_GET to obtain JSON data requires additional encoding. And the decoding operation is relatively cumbersome. In actual development, we can choose the appropriate method to obtain the front-end JSON array according to specific needs in order to better process the data.

The above is the detailed content of How to get the frontend json array in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn