웹 응용 프로그램을 개발할 때 JSON 형식은 클라이언트와 서버 간의 데이터 교환에 널리 사용됩니다. JSON 응답을 올바르게 처리하기 위해 PHP는 응답 헤더 정보를 설정하기 위해 헤더 () 함수를 제공합니다. 이 기사에서는 Header () 함수를 사용하여 JSON 응답 헤더를 올바르게 설정하는 방법을 설명합니다.
PHP의 헤더 () 함수는 원시 HTTP 응답 헤더 정보를 클라이언트에게 보내는 데 사용됩니다. 올바른 응답 헤더를 설정함으로써 서버는 브라우저 또는 클라이언트에게 응답 내용을 올바르게 처리하도록 요청한 리소스 유형을 알려줍니다. 특히 JSON 데이터를 반환 할 때 컨텐츠 유형을 Application/JSON 으로 설정하는 것이 매우 중요합니다.
기본적으로 PHP는 응답 내용 유형을 설정하지 않습니다. JSON 데이터를 반환하면 브라우저 또는 클라이언트가 올바르게 구문 분석하지 못할 수 있습니다. 따라서 우리는 클라이언트에게 JSON 데이터를 반환하고 있다고 명시 적으로 알려야합니다. 컨텐츠 유형을 Application/JSON 으로 설정하면 클라이언트가 응답을 올바르게 처리하고 JSON 형식으로 처리 할 수 있습니다.
JSON 데이터를 올바르게 반환하려면 다음 단계를 수행해야합니다.
올바른 컨텐츠 유형 응답 헤더를 보내십시오
다른 출력이 없는지 확인하십시오
출력 JSON 데이터
다음은 PHP에서 JSON 응답 헤더를 올바르게 설정하고 JSON 데이터를 반환하는 방법을 보여주는 간단한 예제 코드입니다.
<?php
// 설정 Content-Type ~을 위한 application/json
header('Content-Type: application/json');
// 일부 데이터를 시뮬레이션합니다
$data = array(
'status' => 'success',
'message' => '데이터가 성공적으로 처리되었습니다',
'url' => 'https://m66.net/success'
);
// 将数据转换~을 위한 JSON 체재
echo json_encode($data);
?>
헤더 ( 'content-type : application/json');
이 코드 라인은 가장 중요합니다. 브라우저 나 클라이언트에게 응답의 컨텐츠 유형이 JSON임을 알려줍니다. 이를 통해 클라이언트는 반환 된 데이터를 올바르게 구문 분석 할 수 있습니다.
$ data = 배열 (...)
여기서 우리는 우리가 반환하려는 데이터로 간단한 배열을 빌드합니다. 실제 개발에서 일반적으로 데이터베이스에서 데이터를 쿼리하거나 외부 API에서 데이터를 가져와 JSON으로 포맷합니다.
json_encode ($ data);
이 함수는 PHP 배열 또는 객체를 JSON 형식으로 변환합니다. JSON_ENCODE ()는 생성 된 JSON 데이터가 사양을 준수하는지 확인하기 위해 따옴표 또는 백 슬래시와 같은 배열의 특수 문자를 자동으로 처리합니다.
헤더를 보내기 전에 아무것도 출력하지 마십시오 <br> PHP는 Header () 함수를 호출하기 전에 출력 (예 : 공백, HTML 태그 또는 오류 메시지)을 가질 수 없습니다. Header ()을 호출하기 전에 출력이있는 경우 PHP는 오류를보고합니다. 헤더 정보를 수정할 수 없습니다 - 헤더는 이미 전송됩니다 .
응답 헤더가 올바른 순서인지 확인하십시오 <br> 응답 헤더는 다른 출력 전에 보내야합니다. JSON 응답 헤더를 전송 한 후 HTML 출력 또는 기타 컨텐츠 출력이 수행되면 브라우저는 JSON 데이터를 올바르게 구문 분석 할 수 없습니다.
JSON 데이터의 문자 인코딩 문제 <br> 비 ASCII 문자가 포함 된 JSON 데이터를 반환 해야하는 경우 JSON_ENCODE () 에서 JSON_UNESCAPED_UNICODE 플래그를 사용하여 중국어가 유니 코드 인코딩으로 빠져 나가지 않도록하십시오.
echo json_encode($data, JSON_UNESCAPED_UNICODE);
다음은 모든 모범 사례의 포괄적 인 예입니다.
<?php
// 출력을 방지하십시오
ob_start();
// 설정响应头~을 위한 JSON 체재
header('Content-Type: application/json');
// 설정其他头部信息(크로스 도메인 요청이 허용되는 경우)
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
// 데이터베이스 또는 다른 곳에서 얻은 데이터를 시뮬레이션합니다
$data = array(
'status' => 'error',
'message' => '오류가 발생했습니다,나중에 다시 시도하십시오',
'url' => 'https://m66.net/error'
);
// 将数据转换~을 위한 JSON 체재并输出
echo json_encode($data, JSON_UNESCAPED_UNICODE);
// 엔드 스크립트,다른 출력이 없는지 확인하십시오
ob_end_flush();
?>
PHP에서는 헤더 () 함수를 사용하여 JSON 응답 헤더를 설정하는 것이 매우 쉽습니다. Content-Type : Application/JSON을 설정하면 클라이언트가 반환 된 JSON 데이터를 올바르게 처리하고 구문 분석 할 수 있습니다. 응답 헤더를 설정하기 전에 오류를 피할 수 있도록 다른 출력이 없는지 확인하십시오.
이 기사가 PHP를 사용하여 JSON 응답을 처리하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다. 질문이 있으시면 언제든지 물어보십시오!