之前写过一篇《PHP实现程序值守》,在实际应用中,特别是自有服务器或者是本地执行中,还是非常不方便的,特别是对于线程的控制。
在cmd下运行php可以妥善解决上类问题。
w8o.php部分代码如下:
// 设置编码 header("Content-type: text/html; charset=utf-8"); // 设置时区 date_default_timezone_set("Asia/Shanghai"); // 设置脚本执行时间 set_time_limit(0); // 死循环执行程序 do{ // 获取参数 echo var_dump($argv); // 输出 flush(); // 请求间隔时间 sleep(10); }while(true);
然后使用cmd运行,以本机安装的xammp为例子运行执行
d: cd xampp cd php php.exe -f D:\xampp\htdocs\w8o.php 100
即可实现可视化的程序值守,且多线程执行上也比直接采用浏览器来运行更加方便。
几个需要注意的地方:
一、CMD下执行php是不能直接获取$_GET参数的,我们需要采用$argv来获取,仅需要在需要执行的页面后加空格直接传递参数的值即可,参数允许多个,并会以数组的方式返回。
二、一般我们写php均采用UTF-8编码,而在cmd下执行输出时会产生乱码,可以在CMD下执行chcp 65001,即可切换到UTF-8编码。
三、关于中文输出,在UTF-8编码下,我实验过网上的各种方法,其实都存在缺陷,并不完美,建议大家在输出的时候还是采用英文输出比较好。或者你有完美的解决方案,也可以给我留言。