Heim >Backend-Entwicklung >PHP-Tutorial >Ich kann PHP verwenden, um Online-Programmierfragen zu beantworten!

Ich kann PHP verwenden, um Online-Programmierfragen zu beantworten!

藏色散人
藏色散人nach vorne
2021-04-01 17:27:012752Durchsuche

Ich kann PHP verwenden, um Online-Programmierfragen zu beantworten!

Verwenden Sie PHP, um Online-Programmierfragen zu beantworten

Heute möchte ich PHP verwenden, um einige Online-Fragen in Sphere Online Judge zu beantworten, aber ich schreibe seit kurzem PHP und nicht Ich möchte C nicht verwenden. Normalerweise reiche ich Formulare ein, wenn ich Projekte schreibe, und das hatte ich wirklich nicht in Betracht gezogen, also habe ich einen Blick auf die Dokumentation geworfen.

Das Dokument finden Sie hier: http://php.net/manual/zh/wrappers.php.php

1 Einführung in PHP STDIN, STDOUT, STDERR:

STDIN, STDOUT, STDERR Befehlseingabe- und -ausgabestreams werden zur Eingabe und Ausgabe von Inhalten in die Konsole verwendet (Linux-Shell-Terminal, Windows-CMD-Terminal). Sie sind standardmäßig bereits geöffnet und können sein Direkt verarbeitete Lese- und Schreibvorgänge können nur im CLI-Modus (Befehlszeilenschnittstelle, Befehlszeilenschnittstelle) verwendet werden und sind im HTTP-Modus undefiniert. STDINSTDOUTSTDERR命令输入输出流,用于向控制台(linux shell终端、windows cmd终端)输入、输出内容,它们默认是已经打开的,可以直接对他们进行读写操作,它们只能在CLI(command-line interface,命令行界面)模式中使用,在Http模式时,它们是未定义的。

而他们的打开副本php://stdinphp://stdoutphp://stderr 也无法输出内容到http浏览器,经测试:写入php://stderr的内容将会输入到默认站点的错误日志中,其它两种无任何效果。

STDIN/STDOUT/STDERR简介:

原始流 流打开副本 描述
STDIN php://stdin 标准输入(standard input),只读,用于从控制台输入内容;
STDOUT php://stdout 标准输出(standard output),只写,用于向控制台输出正常信息
STDERR php://stderr 错误输出(standard error),只写,用于向控制台输出错误信息

官方推荐使用常量 STDIN、 STDOUT 和 STDERR 来代替它们手动打开的副本封装器php://stdinphp://stdoutphp://stderr

【推荐学习:PHP视频教程

二、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://stdoutUnd ihre geöffneten Kopien php://stdin, php://stdout, php://stderr können keine Inhalte an den http-Browser ausgeben , nach dem Test: Der in php://stderr geschriebene Inhalt wird in das Fehlerprotokoll der Standardseite eingetragen, die anderen beiden haben keine Auswirkung. STDIN/STDOUT/STDERR Einführung:

Original-StreamOffene Stream-KopieBeschreibung
STDINphp://stdinStandardeingabe (Standardeingabe), schreibgeschützt, verwendet zum Geben Sie Inhalte über die Konsole ein;
STDOUTphp://stdoutStandardausgabe (Standardausgabe), nur Schreiben , Wird verwendet, um normale Informationen an die Konsole auszugeben
STDERRphp://stderrFehlerausgabe (Standard). error ), schreibgeschützt, wird zur Ausgabe von

Fehlermeldungen

an die Konsole verwendet

Offiziell wird empfohlen, die Konstanten STDIN, STDOUT und STDERR zu verwenden, um ihre manuell geöffnete Kopie zu ersetzen Pakete Server php://stdin, php://stdout und php://stderr.

【Empfohlenes Lernen: PHP-Video-Tutorial

2. PHP STDIN-Verwendung:

„STDIN“ in der PHP-Sprache wird verwendet, um Inhalte von der Konsole zu lesen oder php:/ über <code>fopen() zu öffnen Funktion /stdinDas Skript wartet auf Benutzereingaben, bis der Benutzer zum Senden die Eingabetaste drückt. Schreiben Sie stdin.php, um es zu testen:

<?php
fwrite(STDOUT, "通过STDOUT写入;\n");
 
$demo = fopen("php://stdout", "w");
fwrite($demo, "通过php://stdout写入;");
fclose($demo);
Führen Sie das Ergebnis aus:
☁  test  php demo.php > a.txt
☁  test  cat a.txt
通过STDOUT写入;
通过php://stdout写入;% 

☁  test  php demo.php
通过STDOUT写入;
通过php://stdout写入;% 
☁  test
3. PHP STDOUT-Verwendung: In der PHP-Sprache wird STDOUT zum Senden verwendet Nachrichten an die Konsole Standardinformationen ausgeben; der Inhalt, der in diese Konstante oder in php://stdout geschrieben wird, das von der Funktion

fopen()

geöffnet wurde, wird direkt an die

Standardausgabe

der Konsole ausgegeben ; der Inhalt der Standardausgabe Sie können „

>

“ oder „

1>

“ verwenden, um an einen bestimmten Ort, beispielsweise eine Datei, umzuleiten.

In ähnlicher Weise schreiben wir eine Datei, um sie zu testen.

<?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);
()

Der in „php://stderr“ geschriebene, von der Funktion geöffnete Inhalt wird direkt an die

Fehlerausgabe

der Konsole ausgegeben; der Fehlerausgabeinhalt kann mit „
“ an einen bestimmten Ort, z. B. eine Datei, umgeleitet werden 2>🎜" ; Sie können auch „🎜2>&1🎜" verwenden, um die Fehlerausgabe an die Standardausgabe weiterzuleiten und sie mit der Standardausgabe zusammenzuführen. 🎜🎜Lass es uns testen🎜
☁  test  php demo.php 1>demo.ok 2>demo.err
☁  test   cat demo.ok
STDOUT写入的正常输出;
php://stdout写入的正常输出;
☁  test   cat demo.err
STDERR写入的错误输出;
php://stderr写入的错误输出;
🎜Normale Ausgabe und Fehlerausgabe werden jeweils an unterschiedliche Dateien weitergeleitet:🎜
☁  test  php demo.php 1>AllInOne 2>&1
☁  test  cat AllInOne
STDERR写入的错误输出;
STDOUT写入的正常输出;
php://stdout写入的正常输出;
php://stderr写入的错误输出;
🎜Normale Ausgabe und Fehlerausgabe werden zusammengeführt und an eine einheitliche Datei weitergeleitet:🎜
<?php
    // your code here
$x=0;
while($x!=42){
   $x = fgets(STDIN);
   if($x!=42){
   echo sprintf("%d\n",$x);
}
}
?>
🎜Okay, als nächstes können Sie zu Sphere Online Judge gehen , Testen Sie zuerst ein Demo-Thema. 🎜🎜Schreiben Sie einen Code.🎜rrreee🎜Senden

Das obige ist der detaillierte Inhalt vonIch kann PHP verwenden, um Online-Programmierfragen zu beantworten!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen