文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用PHP挑战在线编程题的示例分析

2023-06-14 10:18

关注

这篇文章主要介绍了使用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);}}?>

感谢你能够认真阅读完这篇文章,希望小编分享的“使用PHP挑战在线编程题的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯