站长资讯网
最全最丰富的资讯网站

我可以用PHP挑战在线编程题了!

我可以用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简介:

原始流 流打开副本 描述
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("输入的内容为: %sn", $jimmy);   $demo = fopen('php://stdin', 'r'); echo "请输入: "; $test = fread($demo, 12); //最多读取12个字符 echo sprintf("输入为: %sn", $test); fclose($demo);

运行结果:

请输入内容:sad 输入的内容为: sad  请输入: asdasdasdasdasdasd 输入为: asdasdasdasd(这里因为设置了最多读取12个字符,设置

赞(0)
分享到: 更多 (0)