>백엔드 개발 >PHP 튜토리얼 >PHP의 표준 입력 및 출력

PHP의 표준 입력 및 출력

不言
不言원래의
2018-04-20 09:23:3119509검색

이 기사에서는 특정 참조 가치가 있는 PHP의 표준 입력 및 출력을 소개합니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들이 참조할 수 있습니다.

PHP의 표준 입력 및 출력에 대한 간략한 소개





Sphere Online에서 사용하고 싶습니다. 오늘 판단하세요. PHP를 사용하여 온라인으로 몇 가지 질문에 도전하고 표준 입력 및 출력이 있지만 최근에는 PHP를 작성하고 있으며 C를 사용하고 싶지 않습니다. 저는 보통 프로젝트를 작성할 때 양식을 제출하는 경우가 많기 때문에 문서를 살펴보았습니다.


문서는 여기에 있습니다: http://php.net/manual/zh/wrappers.php.php

1. PHP STDIN, STDOUT, STDERR 소개:

STDINSTDOUTSTDERR명령 입력 및 출력 스트림, 콘솔(리눅스 셸 터미널, Windows cmd 터미널) 입력 및 출력 콘텐츠에 사용되며 기본적으로 열려 있으며 직접 읽고 쓸 수 있으며 CLI(명령줄 인터페이스, 명령줄 인터페이스) 모드에서만 사용할 수 있습니다. Http 모드에서는 정의되지 않습니다.

열린 사본의 내용php://stdinphp://stdoutphp://stderr 也无法输出内容到http浏览器,经测试:写入php://stderr은 기본 사이트의 오류 로그에 입력되며 나머지 두 개는 아무런 영향을 미치지 않습니다.

STDIN/STDOUT/STDERR 소개:

원본 스트림 스트림 공개 사본 Description
STDIN php://stdin 표준 입력, 입력하는데 사용됨 콘솔의 콘텐츠
STDOUT php://stdout 표준 출력(표준 출력), 쓰기 전용, 일반 정보를 콘솔에 출력하는 데 사용됨
STDERR php: //stderr 오류 출력(표준 오류), 쓰기 전용, 오류 정보를 콘솔에 출력하는 데 사용됨

 수동으로 열린 복사 래퍼php://stdin, php://stdoutphp://stderr. php://stdin、 php://stdout 和 php://stderr

二、PHP STDIN用法:

PHP语言中"STDIN"用于从控制台读取内容,遇到此常量或者通过fopen()函数打开php://stdin脚本将会等待用户输入内容,直到用户按下回车键提交。

写个stdin.php测试一下:

<?php
echo "请输入内容:";
$jimmy = fgets(STDIN);
echo sprintf("输入的内容为: %s\n", $jimmy);
$demo = fopen(&#39;php://stdin&#39;, &#39;r&#39;);
echo "请输入: ";
$test = fread($demo, 12); //最多读取12个字符
echo sprintf("输入为: %s\n", $test);fclose($demo);

运行结果:

请输入内容:sad
输入的内容为: sad

请输入: asdasdasdasdasdasd
输入为: asdasdasdasd(这里因为设置了最多读取12个字符,设置更多一些就可以完整显示)

三、PHP STDOUT用法:

 PHP语言中STDOUT用于向控制台输出标准信息;向此常量、或者向fopen()函数打开的php://stdout2. PHP STDIN 사용법: PHP 언어의 "STDIN"은 이 상수를 만나거나 fopen()기능 열기<code style="font-family:monaco, Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size:.9em;padding:1px 2px;color:rgb(133,128,128);배경: rgb(249,250,250);margin:5px;border:1px solid rgb(228,228,228);">php://stdin스크립트는 사용자가 Enter 키를 눌러 제출할 때까지 사용자가 콘텐츠를 입력할 때까지 기다립니다. 쓰기 stdin.php테스트:

<?php
fwrite(STDOUT, "通过STDOUT写入;\n");
$demo = fopen("php://stdout", "w");
fwrite($demo, "通过php://stdout写入;");
fclose($demo);

실행 결과:

☁  test  php demo.php > a.txt
☁  test  cat a.txt
通过STDOUT写入;
通过php://stdout写入;%                                                        ☁  test  php demo.php
通过STDOUT写入;
通过php://stdout写入;%                                                        ☁  test

3. PHP STDOUT 사용법:

PHP 언어STDOUT은 표준 정보를 콘솔에 출력하는 데 사용됩니다. fopen() 함수에 열립니다. :monaco, Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size:.9em;padding:1px 2px;color:rgb(133,128,128); background:rgb(249,250,250);margin:5px;border:1px solid rgb(228,228,228);">php://stdout작성된 내용은 콘솔의

표준 출력으로 직접 출력됩니다. 표준 출력의 내용은 ">" 또는 ""일 수 있습니다. 1>"파일 등 지정된 위치로 리디렉션됩니다. 마찬가지로 테스트용 파일을 작성해 보겠습니다

<?php
fwrite(STDERR, "STDERR写入的错误输出;\n");
fwrite(STDOUT, "STDOUT写入的正常输出;\n");
$stdout = fopen("php://stdout", "w");
fwrite($stdout, "php://stdout写入的正常输出;\n");
fclose($stdout);$stderr = fopen("php://stderr", "w");
fwrite($stderr, "php://stderr写入的错误输出;\n");
fclose($stderr);
실행:

☁  test  php demo.php 1>demo.ok 2>demo.err
☁  test   cat demo.okSTDOUT写入的正常输出;
php://stdout写入的正常输出;☁  test   cat demo.errSTDERR写入的错误输出;
php://stderr写入的错误输出;

4. PHP STDERR 사용법:

PHP 언어의 "STDERR"은 오류 정보를 상수 또는

fopen에 출력하는 데 사용됩니다. ()

함수로 열린 "php://stderr"에 작성된 내용은 콘솔의

오류 출력

으로 직접 출력됩니다. 오류 출력 내용은 "

를 사용하여 파일 등 지정된 위치로 리디렉션할 수 있습니다. 2>

" ; "PHP의 표준 입력 및 출력

테스트해 보겠습니다

☁  test  php demo.php 1>AllInOne 2>&1☁  test  cat AllInOneSTDERR写入的错误输出;
STDOUT写入的正常输出;
php://stdout写入的正常输出;
php://stderr写入的错误输出;

정상 출력과 오류 출력은 각각 다른 파일로 전달됩니다.

<?php
    // your code here$x=0;while($x!=42){
   $x = fgets(STDIN);
   if($x!=42){
   echo sprintf("%d\n",$x);}}?>
정상 출력과 오류 출력은 병합되어 통합 파일로 전달됩니다.

rrreee

좋아요, 다음은 Sphere Online Judge로 이동하세요. , 먼저 데모 주제 테스트

🎜🎜🎜🎜코드 작성🎜rrreee🎜Submit🎜🎜🎜🎜🎜하하하하, 완전히 괜찮습니다. 더 이상 java와 c에 국한되지 않습니다. PHP로 몇 가지 질문에 도전할 수 있습니다. 모두가 갈 수도 있습니다. 그것 🎜

관련 권장 사항:

PHP의 Smarty

php의 네임스페이스 및 자동 로딩에 대한 자세한 내용

php의 다운로드 기능

위 내용은 PHP의 표준 입력 및 출력의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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