현재 위치: > 최신 기사 목록> PHP CLI 모드에서 헤더 ()의 역할 및 한계

PHP CLI 모드에서 헤더 ()의 역할 및 한계

M66 2025-05-30

PHP 프로그래밍에서 헤더 () 함수는 리디렉션 설정, 콘텐츠 유형 지정, 캐시 제어 등과 같은 원시 HTTP 헤더 정보를 클라이언트에 보내는 데 사용되는 매우 일반적인 도구입니다. 그러나 모드에서 PHP 스크립트를 실행할 때 헤더 () 기능이 여전히 작동 할 수 있습니까? 이 기사에서는 자세한 답변을 제공합니다.

PHP CLI 모드 란 무엇입니까?

먼저 PHP CLI 패턴이 무엇인지 이해해야합니다. CLI (Command Line Interface)는 웹 서버 (예 : Apache 및 Nginx)를 통해 구문 분석하지 않고 명령 줄을 통해 직접 PHP 스크립트를 실행하는 것입니다. 보통 우리는 입장합니다.

 php script.php

이 경우 PHP는 더 이상 웹 페이지를 생성하는 도구 역할을하지 않지만 일반 스크립트 집행자 일뿐입니다.

헤더 () 함수의 함수

Header () 함수의 주요 기능은 HTTP 헤더 정보를 클라이언트 (브라우저)에 다음과 같은 다음과 같은 다음과 같은 것입니다.

 header('Location: https://m66.net/welcome');
exit;

이 코드는 브라우저가 지정된 URL로 리디렉션하도록 지시합니다.

그러나 참고 : Header ()는 실제 컨텐츠를 출력하지 않고 응답 헤더 만 수정합니다 . 다시 말해, 그 역할은 전적으로 PHP와 웹 서버 간의 HTTP 프로토콜에 달려 있습니다.

CLI 모드에서는 Header ()가 여전히 사용할 수 있습니까?

직접 답변 : 사용할 수 없거나 사용하는 경우에는 의미가 없습니다 .

이유는 다음과 같습니다.

  • CLI 모드에서 PHP는 HTTP 프로토콜, 요청 헤더 및 응답 헤더가없는 표준 출력 (STDOUT)에 출력을 직접 씁니다.

  • 헤더 () 함수는 내부적으로 SAPI (Server API) CLI를 사용하여 환경에서 실행 중인지 확인합니다. 그렇다면 호출 할 때 실제 HTTP 헤더가 생성되지 않으며 오류를보고하지 않지만 결과는 STDOut에 영향을 미치지 않습니다.

예를 들어 다음 코드를 실행하십시오.

 <?php
header('Content-Type: application/json');
echo json_encode(['status' => 'ok']);

웹 환경에서 브라우저는 컨텐츠 유형 헤더를 수신하여이를 JSON으로 인식합니다. 그러나 CLI 아래에서 실행하십시오.

 php script.php

출력 만 볼 수 있습니다.

 {"status":"ok"}

터미널은 HTTP 헤더를 전혀 이해하거나 처리하지 않기 때문입니다.

CLI 모드의 제한 및 제안

요약하려면 :
? CLI에서 Header () 호출은 오류를보고하지 않지만 잘못된 작업과 동일합니다.
? CLI에는 HTTP 층이 없기 때문에 HTTP 응답 헤더가 전송되지 않습니다.
? Echo , Print_r 및 기타 기능을 계속 사용하여 텍스트를 터미널에 출력 할 수 있습니다.

CLI 스크립트를 작성할 때 Header () 도 호출하는 경우 권장됩니다.

  • 코드가 웹과 CLI에 모두 제공되는지 확인하십시오. 그렇다면 SAPI 탐지를 추가하는 것이 가장 좋습니다.