>백엔드 개발 >PHP 튜토리얼 >PHP에 내장된 웹서버 살펴보기 (2) PHP 콘솔 출력 콘솔 기능 커스터마이징

PHP에 내장된 웹서버 살펴보기 (2) PHP 콘솔 출력 콘솔 기능 커스터마이징

WBOY
WBOY원래의
2016-07-29 09:02:01870검색

우리는 앱의 서버측을 개발하고 있습니다. 앱과 공동으로 디버깅할 때 일반적으로 URL 요청 및 매개변수 수신을 실시간으로 추적해야 합니다.

그러나 PHP에는 Python이나 Java와 같은 전용 콘솔 출력 기능이 없으며 Python의 print() 및 Java의 System.out.println(), PHP의 echo, print 및 기타 기능이 php - f index에서 직접 사용됩니다. .php라면 쉘 화면에 출력할 수 있지만, cli_server가 실행 중일 때 디버깅 정보를 쉘에만 출력하고 브라우저에는 출력하지 않는 것만으로는 부족하다.

DuNiang에서 오랫동안 검색해 본 결과 인터넷에는 PHP 내장 서버 cli 모드에 대한 정보가 거의 없고 유용한 정보도 전혀 찾을 수 없습니다.

PHP 공식 문서를 참고하면서 마침내 PHP의 표준 출력 스트림 STDOUT

 php://output이 쓰기 전용 데이터라는 생각이 들었습니다. stream 을 사용하면 print 및 echo와 동일한 방식으로 출력 버퍼에 쓸 수 있습니다

cli 모드에서 실행할 때 데이터가 STDOUT에 기록되는 한 echo나 print 없이 즉시 SHELL로 인쇄됩니다. 클라이언트:

PHP内置Web Server探究(二)自定义PHP控制台输出console函数

따라서 sdtout 표준 출력 스트림의 데이터 입력을 캡슐화하는 사용자 정의 함수를 작성할 수 있습니다. 이는 표시하려는 일정 정보를 인쇄하는 것과 같습니다. 언제든지 쉘로:

<span><span>1</span><span>/*</span><span>2</span><span>* cli模式或者内置server打印调试信息,而不在浏览器输出
</span><span>3</span><span>* param fixed $data    参数可以是除了对象以外的所有数据类型,比如:字符串,数组,jason等
</span><span>4</span><span>*/</span><span>5</span><span>function</span> console(<span>$data</span><span>){
</span><span>6</span><span>$stdout</span> = <span>fopen</span>('php://stdout', 'w'<span>);
</span><span>7</span><span>fwrite</span>(<span>$stdout</span>,json_encode(<span>$data</span>)."\n");   <span>//</span><span>为了打印出来的格式更加清晰,把所有数据都格式化成Json字符串</span><span>8</span><span>fclose</span>(<span>$stdout</span><span>);
</span><span>9</span> }</span>

내장 서버의 각 요청 후에 현재 디버깅 정보를 인쇄해야 하는 경우: console()을 직접 호출하세요

예:

수신된 모든 GET 또는 POST 매개변수를 인쇄합니다.

console($_GET)

console($_POST); 🎜>

인쇄 문자열: PHP内置Web Server探究(二)自定义PHP控制台输出console函数

console("hello php console debug");

더 이상 제어를 부러워할 필요가 없습니다. Python 및 Java 콘솔 출력, PHP에는 이제 콘솔 출력 기능도 있습니다 PHP内置Web Server探究(二)自定义PHP控制台输出console函数

위 내용은 PHP 내장 웹 서버 탐색을 소개합니다. (2) PHP 콘솔 출력 콘솔 기능 사용자 정의 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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