php cli脚本swoole,运行模式 - php-cli 基础介绍 - 《EasySwoole 3.x 中文文档》 - 书栈网 · BookStack...

php-cli

在前面的简单介绍中,我们已经了解了有php-cli这个模式,现在我们继续详细了解下php-cli和传统web模式不一样的地方吧

超时时间

在php-cli中,是没有超时时间的,也无法通过 set_time_limit 设置超时时间,例如:<?php

set_time_limit(30);

while(1){

echo1;

sleep(1);

}

这段代码,在常规web下运行,只要到30秒就会报Fatal error: Maximum execution time of 30 seconds exceeded in ……这样的错误

而在php-cli中,这段代码将会一直执行,一直输出1到控制台中

buffer缓冲

在常规web模式中,echo,var_dump,phpinfo等输出语句/函数,默认情况是先进入php缓冲区,等缓冲区到达一定数量,才开始传输给web服务器的,但是在php-cli模式中,默认关闭buffer,直接输出,例如以下代码:<?php

ob_start();//开启buffer缓冲区 php-cli下默认关闭buffer,由于web访问测试较麻烦,该段代码只为了查看以及测试缓冲区的作用,在web模式下,默认开启,无需手动开启,可自行配置

for($i=0;$i<1000;$i++){

echo $i;

sleep(1);

if($i%10==0){

//当i为10的倍数时,将直接结束并输出缓冲区的数据,然后再次开启缓冲区

ob_end_flush();

ob_start();

}

}也可通过ob_get_contents函数获取缓冲区内容,ob缓冲系列函数可自行搜索了解

标准输入/输出/错误

执行一个命令行都存在3个标准文件(linux一切皆文件):标准输入 (stdin,通常对应终端的键盘,进程可通过该文件获取键盘输入的数据)

标准输出 (stdout,对应终端的屏幕,进程通过写入数据到该文件,将数据显示到屏幕)

标准错误 (stderr,对应终端的屏幕,进程通过写入数据到该文件,将错误信息显示到屏幕)

在php-cli命令行下,可通过以上3个文件句柄进行一系列的逻辑操作,比如:

启动php文件,监听标准输入,获取到输入的网址,php再进行网址的数据请求/接收 等等操作

而在常规web模式下,标准输出会被拦截 echo var_dump等输出函数其实就是stdout,但是在常规web访问下被重定向到了web服务器,然后由web服务器输出

php-cli 专属扩展

php有些扩展在常规web下运行时没用/没有意义的 例如:swoole扩展

socket扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值