今天想在SphereOnlineJudge中使用PHP在线挑战一些题目。需要使用标准输入输出,但是最近在写php,不想用c写。我一般都是写表单提交的项目,还真没有考虑过这个,所以看了文档。文档在这里:http://php.net/manual/zh/wrappers.php.php一、PHPSTDIN、STDOUT、STDERR介绍: STDIN、STDOUT、STDERR命令输入输出流,用于发送向控制台(linuxshell终端,windowscmd终端)输入输出内容,默认打开,可以直接读写,只能在CLI(command-lineinterface,命令行界面)模式下使用,在Http模式下,它们是未定义的。而他们打开的副本php://stdin,php://stdout,php://stderr是不能向http浏览器输出内容的。经测试:写入php://stderr的内容会被输入到defaultsite的错误日志中,其他两个没有作用。STDIN/STDOUT/STDERR介绍:原始流打开复制说明STDINphp://stdin标准输入(standardinput),只读,用于从控制台输入内容;STDOUTphp://stdout标准输出(standardoutput),只写,用于向控制台输出正常信息;STDERRphp://stderr错误输出(标准错误),只写,用于向控制台输出错误信息; 官方推荐使用常量STDIN、STDOUT和STDERR手动替换它们打开复制包装器php://stdin、php://stdout和php://stderr。2、PHPSTDIN的使用:PHP语言中的“STDIN”用于从控制台读取内容。如果遇到这个常量或者通过fopen()函数打开php://stdin脚本,它会等待用户输入内容,直到用户按下返回Car键提交。写一个stdin.php测试:”或“1>”可以将标准输出的内容重定向到指定的地方,例如文件。同样,让我们??写一个文件来测试a.txt?testcata.txtwriteviaSTDOUT;通过php://stdout写入;%?测试phpdemo.php通过STDOUT写入;通过php://stdout;%?test4.PHPSTDERR的使用:PHP语言中的“STDERR”用于向控制台输出错误信息;fopen()函数打开的"php://stderr"写入的内容会直接输出到控制台的错误输出;可以使用“2>”将错误输出的内容重定向到指定的地方,比如文件;或使用“2>&1”将错误输出定向到标准输出,并与标准输出合并。让我们测试demo.ok2>demo.err?testcatdemo.okSTDOUT写正常输出;php://stdout写入正常输出;?测试catdemo.errSTDERR写入错误输出;php://stderr写入错误输出;正常输出和错误输出合并并定向到一个统一的文件:?testphpdemo.php1>AllInOne2>&1?testcatAllInOneSTDERR编写的错误输出;STDOUT写入的正常输出;php://stdout写的input的正常输出;php://stderr的错误输出;好吧,那你可以去SphereOnlineJudge,先测试一个demo题目,写一段代码提交哈哈哈哈,完全ok,不再局限于java和c,我可以用PHP来挑战一些题目,你也可以试试吗?个人订阅号几米的科技乐园
