国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP 的標準輸入與輸出

2020-03-22 18:30:25
字體:
來源:轉載
供稿:網友
這篇文章介紹的內容是關于PHP 的標準輸入與輸出,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

簡述 PHP 的標準輸入與輸出





今天想在Sphere Online Judge中用PHP來在線挑戰一些題目,要用到標準輸入輸出,但最近在寫php又不想用c來寫,平時寫項目都是表單提交,還真沒有考慮過這個,于是看了下文檔。


文檔在此:http://php.net/manual/zh/wrappers.php.php

一、PHP STDIN、STDOUT、STDERR簡介: 

STDINSTDOUTSTDERR命令輸入輸出流,用于向控制臺(linux shell終端、windows cmd終端)輸入、輸出內容,它們默認是已經打開的,可以直接對他們進行讀寫操作,它們只能在CLI(command-line interface,命令行界面)模式中使用,在Http模式時,它們是未定義的。

而他們的打開副本php://stdinphp://stdoutphp://stderr 也無法輸出內容到http瀏覽器,經測試:寫入php://stderr的內容將會輸入到默認站點的錯誤日志中,其它兩種無任何效果。

STDIN/STDOUT/STDERR簡介:

原始流流打開副本描述
STDINphp://stdin標準輸入(standard input),只讀,用于從控制臺輸入內容;STDOUTphp://stdout標準輸出(standard output),只寫,用于向控制臺輸出正常信息STDERRphp://stderr錯誤輸出(standard error),只寫,用于向控制臺輸出錯誤信息

  官方推薦使用常量 STDIN、 STDOUT 和 STDERR 來代替它們手動打開的副本封裝器php://stdinphp://stdoutphp://stderr

二、PHP STDIN用法:

PHP語言中"STDIN"用于從控制臺讀取內容,遇到此常量或者通過fopen()函數打開php://stdin腳本將會等待用戶輸入內容,直到用戶按下回車鍵提交。

寫個stdin.php測試一下:

<?phpecho "請輸入內容:";$jimmy = fgets(STDIN);echo sprintf("輸入的內容為: %s/n", $jimmy);$demo = fopen('php://stdin', 'r');echo "請輸入: ";$test = fread($demo, 12); //最多讀取12個字符echo sprintf("輸入為: %s/n", $test);fclose($demo);

運行結果:

請輸入內容:sad輸入的內容為: sad請輸入: asdasdasdasdasdasd輸入為: asdasdasdasd(這里因為設置了最多讀取12個字符,設置更多一些就可以完整顯示)

三、PHP STDOUT用法:

 PHP語言中STDOUT用于向控制臺輸出標準信息;向此常量、或者向fopen()函數打開的php://stdout寫入的內容將直接輸出到控制臺的標準輸出;標準輸出的內容可以用過">"或者"1>"重定向到指定地方,比如文件。

同理我們寫個文件來測試一下

<?phpfwrite(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

四、PHP STDERR用法:

PHP語言中"STDERR"用于向控制臺輸出錯誤信息;向常量、或者向fopen()函數打開的"php://stderr"寫入的內容將直接輸出到控制臺的錯誤輸出;錯誤輸出的內容可以用過"2>"重定向到指定地方,比如文件;也可以使用"2>&1"將錯誤輸出定向到標準輸出,與標準輸出合并。

我們測試一下

<?phpfwrite(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寫入的錯誤輸出;

正常輸出和錯誤輸出合并定向到統一文件:

?  test  php demo.php 1>AllInOne 2>&1?  test  cat AllInOneSTDERR寫入的錯誤輸出;STDOUT寫入的正常輸出;php://stdout寫入的正常輸出;php://stderr寫入的錯誤輸出;

好了,接下來可以去Sphere Online Judge叱咤風云了,先測試個demo題目

寫個代碼

<?php    // your code here$x=0;while($x!=42){   $x = fgets(STDIN);   if($x!=42){   echo sprintf("%d/n",$x);}}?>

提交

哈哈哈哈,完全ok,再也不用限制于java和c了,我可以用PHP挑戰一些題目了,大家也可以去試試

相關推薦:

PHP的Smarty較為完整的筆記

php的命名空間和自動加載

php的下載功能

以上就是PHP 的標準輸入與輸出的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍城县| 朔州市| 登封市| 开化县| 凯里市| 常熟市| 梁山县| 商洛市| 明星| 牙克石市| 威信县| 庄河市| 黑山县| 左权县| 阿拉尔市| 福州市| 巫溪县| 临潭县| 辛集市| 探索| 山东| 昂仁县| 兴业县| 彭山县| 天峻县| 陇川县| 肥城市| 宣化县| 秦安县| 塔河县| 勃利县| 雷波县| 张北县| 双辽市| 泗阳县| 浦城县| 湘乡市| 开化县| 思南县| 宜兴市| 治多县|