博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用PHP挑战在线编程题
阅读量:6698 次
发布时间:2019-06-25

本文共 1814 字,大约阅读时间需要 6 分钟。

今天想在Sphere Online Judge中用PHP来在线挑战一些题目,要用到标准输入输出,但最近在写php又不想用c来写,平时写项目都是表单提交,还真没有考虑过这个,于是看了下文档。

文档在此:

一、PHP STDIN、STDOUT、STDERR简介: 

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 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.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题目

写个代码

提交

哈哈哈哈,完全ok,再也不用限制于java和c了,我可以用PHP挑战一些题目了,大家也可以去试试?

个人订阅号

Jimmy的技术乐园

转载地址:http://gamoo.baihongyu.com/

你可能感兴趣的文章
Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)...
查看>>
收集整理的非常有用的PHP函数
查看>>
css3图标悬停导航菜单
查看>>
我的友情链接
查看>>
Android中实时视频传输(摄像头实时视频传输)解决方案<二>
查看>>
开启Swarm集群以及可视化管理
查看>>
sql完整性
查看>>
Permissions for id_rsa are too open
查看>>
outlook 2007 自动答复邮件
查看>>
编辑器
查看>>
TortoiseSVN检出链接(可用于与站点集成)
查看>>
我的友情链接
查看>>
[C++]MySQL数据库操作实例
查看>>
RedHat Linux 5.5系统下配置yum包详细过程
查看>>
替换WordPress调用的Google前端库为360镜像的库
查看>>
Nginx服务器证书部署-亚洲诚信
查看>>
linux shell 上传,下载ftp文件
查看>>
我的友情链接
查看>>
oracle11g安装脚本
查看>>
linux下搭建FTP服务器
查看>>