>  기사  >  백엔드 개발  >  PHP에서 프론트엔드 json 배열을 얻는 방법

PHP에서 프론트엔드 json 배열을 얻는 방법

王林
王林원래의
2023-05-07 14:41:11825검색

PHP는 서버 측 언어로서 일반적으로 프런트 엔드와 상호 작용할 때 JSON 형식을 사용하여 데이터를 전송합니다. JSON(JavaScript Object Notation)은 단순성, 이해 용이성 및 사용 용이성으로 인해 웹 개발에서 일반적으로 사용되는 데이터 전송 형식이 되었습니다. 프론트 엔드에서 JSON을 사용하는 경우 일반적으로 JSON.stringify() 메소드를 사용하여 데이터를 JSON 형식으로 변환하고 ajax 및 기타 메소드를 통해 요청을 전송합니다. 이러한 요청을 수신하고 처리하려면 백엔드가 필요합니다. get, post, ajax 및 기타 방법이 포함됩니다. 이 기사에서는 PHP에서 전면 JSON 배열을 얻는 방법을 소개합니다.

  1. $_POST 메서드를 사용하여 프런트엔드 JSON 배열 가져오기

일반적으로 프런트엔드가 ajax를 사용하여 POST 요청을 보낼 때 JSON 데이터는 요청의 데이터 부분으로 백엔드에 전송됩니다. PHP에서는 $_POST 메소드를 사용하여 이 데이터를 얻을 수 있습니다. 예를 들어 프런트 엔드 Ajax 코드는 다음과 같습니다.

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

백그라운드의 test.php 파일에서 $_POST 메서드를 사용하여 프런트 엔드에서 보낸 JSON 데이터를 얻을 수 있습니다.

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

그 중 , file_get_contents("php://input") 메소드는 POST 요청의 데이터를 가져올 수 있고, json_decode 메소드는 데이터를 PHP 배열로 디코딩하고 마지막으로 print_r 함수를 사용하여 배열을 콘솔에 출력합니다.

  1. 프런트엔드 JSON 배열을 얻으려면 $_GET 메서드를 사용하세요

프런트엔드는 POST 메서드 외에도 일반적으로 데이터를 얻는 데 사용되는 JSON 데이터를 보내기 위해 GET 메서드를 사용할 수도 있습니다. 예를 들어 프런트 엔드 Ajax 코드는 다음과 같습니다.

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

백그라운드의 test.php 파일에서 $_GET 메서드를 사용하여 프런트 엔드에서 보낸 JSON 데이터를 얻을 수 있습니다. 그러나 GET 요청의 데이터는 서버로 직접 전송되지 않고 URL 뒤의 쿼리 문자열에 추가되므로 이 데이터에 대한 특정 처리가 필요합니다. 예를 들어 JSON 데이터가 base64로 인코딩된 후 URL에 추가되는 경우 원본 JSON 데이터를 가져오기 전에 백그라운드에서 쿼리 문자열을 디코딩하고 구문 분석해야 합니다. 샘플 코드는 다음과 같습니다.

프런트 엔드 코드:

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

백엔드 코드:

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

이 예에서는 btoa() 메서드를 통해 JSON 데이터를 base64로 인코딩하여 백엔드에 전달합니다. 백그라운드에서는 base64_decode() 메서드를 사용하여 쿼리 문자열을 디코딩한 다음 json_decode() 메서드를 통해 디코딩된 JSON 데이터를 PHP 배열로 구문 분석하고 최종적으로 콘솔에 출력합니다.

  1. file_get_contents 메서드를 사용하여 프런트엔드 JSON 배열을 가져옵니다

$_POST 및 $_GET 메서드 외에도 file_get_contents 메서드를 사용하여 프런트엔드에서 보낸 JSON 데이터를 가져올 수도 있습니다. 이 방법은 일반적으로 더 큰 JSON 데이터를 처리하는 데 사용됩니다. 예를 들어 프런트엔드 ajax 코드는 다음과 같습니다.

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

백그라운드의 test.php 파일에서 file_get_contents 메소드를 사용하여 프런트엔드에서 보낸 JSON 데이터를 직접 얻을 수 있고, json_decode 메소드를 사용할 수 있습니다. PHP 배열로 디코딩합니다.

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

그 중 file_get_contents 메소드를 사용하여 GET 요청의 데이터를 얻을 수도 있지만, 사용 시에는 allowed_url_fopen 구성 항목을 켜야 하기 때문에 실제 개발에서는 사용하지 않는 것이 좋습니다.

요약

위 내용은 PHP에서 프런트엔드 JSON 배열을 얻는 몇 가지 일반적인 방법입니다. 그 중에서 $_POST 및 file_get_contents 방법이 더 일반적입니다. JSON 데이터를 얻으려면 추가 인코딩 및 디코딩 작업이 필요합니다. 더 번거롭습니다. 실제 개발에서는 데이터를 더 잘 처리하기 위해 특정 요구 사항에 따라 프런트 엔드 JSON 배열을 얻는 적절한 방법을 선택할 수 있습니다.

위 내용은 PHP에서 프론트엔드 json 배열을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.