摘要:今天想在中用來在線挑戰一些題目,要用到標準輸入輸出,但最近在寫又不想用來寫,平時寫項目都是表單提交,還真沒有考慮過這個,于是看了下文檔。
今天想在Sphere Online Judge中用PHP來在線挑戰一些題目,要用到標準輸入輸出,但最近在寫php又不想用c來寫,平時寫項目都是表單提交,還真沒有考慮過這個,于是看了下文檔。
文檔在此:http://php.net/manual/zh/wrappers.php.php
一、PHP STDIN、STDOUT、STDERR簡介:STDIN、STDOUT、STDERR命令輸入輸出流,用于向控制臺(linux shell終端、windows cmd終端)輸入、輸出內容,它們默認是已經打開的,可以直接對他們進行讀寫操作,它們只能在CLI(command-line interface,命令行界面)模式中使用,在Http模式時,它們是未定義的。
而他們的打開副本php://stdin、php://stdout、php://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://stdin、 php://stdout 和 php://stderr。
二、PHP STDIN用法:PHP語言中"STDIN"用于從控制臺讀取內容,遇到此常量或者通過fopen()函數打開php://stdin腳本將會等待用戶輸入內容,直到用戶按下回車鍵提交。
寫個stdin.php測試一下:
運行結果:
請輸入內容:sad 輸入的內容為: sad 請輸入: asdasdasdasdasdasd 輸入為: asdasdasdasd(這里因為設置了最多讀取12個字符,設置更多一些就可以完整顯示)三、PHP STDOUT用法:PHP語言中STDOUT用于向控制臺輸出標準信息;向此常量、或者向fopen()函數打開的php://stdout寫入的內容將直接輸出到控制臺的標準輸出;標準輸出的內容可以用過">"或者"1>"重定向到指定地方,比如文件。
同理我們寫個文件來測試一下
運行一下:
? 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"將錯誤輸出定向到標準輸出,與標準輸出合并。
我們測試一下
正常輸出和錯誤輸出分別定向到不同文件:
? test php demo.php 1>demo.ok 2>demo.err ? test cat demo.ok STDOUT寫入的正常輸出; php://stdout寫入的正常輸出; ? test cat demo.err STDERR寫入的錯誤輸出; php://stderr寫入的錯誤輸出;正常輸出和錯誤輸出合并定向到統一文件:
? test php demo.php 1>AllInOne 2>&1 ? test cat AllInOne STDERR寫入的錯誤輸出; STDOUT寫入的正常輸出; php://stdout寫入的正常輸出; php://stderr寫入的錯誤輸出;好了,接下來可以去Sphere Online Judge叱咤風云了,先測試個demo題目
寫個代碼
提交
哈哈哈哈,完全ok,再也不用限制于java和c了,我可以用PHP挑戰一些題目了,大家也可以去試試?
個人訂閱號Jimmy的技術樂園
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25676.html
摘要:在線挑戰,還沒用過,貌似現在對英文資料心里還有種抵觸,必須克服實驗樓研發工程師包含了等學習課程。書的作者就是開發了用于數據分析的著名開源庫的作者英文資料,對數據分析中要用到的一些庫,等等做了簡要介紹。形式的資料,示例代碼都很全。 showImg(https://segmentfault.com/img/remote/1460000004852849); 一、說明 面對網絡上紛繁復雜的資...
摘要:進攻即是最好的防御個練習黑客技術的在線網站進攻即是最好的防御,這句話同樣適用于信息安全的世界。社區有接近萬的注冊會員也是最大的一個黑客社區之一。 進攻即是最好的防御!19個練習黑客技術的在線網站 進攻即是最好的防御,這句話同樣適用于信息安全的世界。這里羅列了19個合法的來練習黑客技術的網站,不管你是一名開發人員、安全工程師、代碼審計師、滲透測試人員,通過不斷的練習才能讓你成為一個優秀安...
摘要:然而,雖然先生對無所不知,被譽為世界的愛因斯坦,但他的語言精粹并不適合初學者學習。即便如此,在后面我還是會建議把當做補充的學習資源。但目前為止,依然是學習編程的好幫手。周正則表達式,對象,事件,閱讀權威指南第,,,章。 既然你找到這篇文章來,說明你是真心想學好JavaScript的。你沒有想錯,當今如果要開發現代網站或web應用(包括互聯網創業),都要學會JavaScript。而面對泛...
閱讀 2111·2021-11-23 10:06
閱讀 3476·2021-11-11 16:54
閱讀 3343·2019-08-29 17:31
閱讀 3569·2019-08-29 17:05
閱讀 2171·2019-08-26 13:36
閱讀 2159·2019-08-26 12:17
閱讀 524·2019-08-26 12:12
閱讀 1673·2019-08-26 10:19