共计 2696 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要讲解了“支持 windows 与 linux 的 php 计划如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“支持 windows 与 linux 的 php 计划如何实现”吧!
使用 php 让浏览器刷新需要解决几个问题:
1.PHP 脚本执行时间限制,默认的是 30m 解决办法:set_time_limit(); 或者修改 PHP.ini 设置 max_execution_time 时间(不推荐)
2. 如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort 即使关闭页面依然正常执行
3. 如果程序一直执行很有可能会消耗大量的资源,解决办法使用 sleep 使用程序休眠一会,然后在执行
复制代码 代码如下:
?php
ignore_user_abort();// 关掉浏览器,PHP 脚本也可以继续执行.
set_time_limit(3000);// 通过 set_time_limit(0)可以让程序无限制的执行下去
$interval=5;// 每隔 5s 运行
// 方法 1 – 死循环
do{
echo 测试 .time(). br/
sleep($interval);// 等待 5s
}while(true);
// 方法 2 —sleep 定时执行
require_once ./curlClass.php // 引入文件
$curl = new httpCurl();// 实例化
$stime = $curl- getmicrotime();
for($i=0;$i $i++){
echo 测试 .time(). br/
sleep($interval);// 等待 5s
}
ob_flush();
flush();
$etime = $curl- getmicrotime();
echo hr
echo round(($etime-stime),4);// 程序执行时间
WINDOWS 中设置计划任务执行 PHP 文件
在网上找了些 WINDOWS 执行 PHP 的计划任务的方法,有一个写得很全,可惜在我这竟然没通过。最后不得不综合各门派的方法,才能在我这运行成功。
1、写一个 PHP 程序,命名为 test.php,内容如下所示:
复制代码 代码如下:
?php
$fp = fopen(test.txt , a+
fwrite($fp, date( Y-m-d H:i:s) . 成功成功了!n
fclose($fp);
?
程序大胆地写,什么 include、require 尽管用,都没问题
2、新建 Bat 文件,命名为 test.bat, 内容如下所示:
复制代码 代码如下:
D:phpphp.exe -q D:websitetest.php
相应目录自己改上
3、建立 WINDOWS 计划任务:
开始– 控制面板– 任务计划– 添加任务计划
浏览文件夹选择上面的 bat 文件
设置时间和密码(登陆 WINDOWS 的)
保存即可了。
4、over! 可以右键计划任务点“运行”试试
Linux 的 Crontab 执行 PHP 脚本
一、在 Crontab 中使用 PHP 执行脚本
就像在 Crontab 中调用普通的 shell 脚本一样(具体 Crontab 用法),使用 PHP 程序来调用 PHP 脚本。
每一小时执行 myscript.php 如下:
复制代码 代码如下:
# crontab -e
00 * * * * /usr/local/bin/php /home/john/myscript.php
其中 /usr/local/bin/php 为 PHP 程序的路径。
二、在 Crontab 中使用 URL 执行脚本
如果你的 PHP 脚本可以通过 URL 触发,你可以使用 lynx 或 curl 或 wget 来配置你的 Crontab。
下面的例子是使用 Lynx 文本浏览器访问 URL 来每小时执行 PHP 脚本。Lynx 文本浏览器默认使用对话方式打开 URL。但是,像下面的,我们在 lynx 命令行中使用 -dump 选项来把 URL 的输出转换来标准输出。
复制代码 代码如下:
00 * * * * lynx -dump http://www.centos.bz/myscript.php
下面的例子是使用 CURL 访问 URL 来每 5 分执行 PHP 脚本。Curl 默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。
复制代码 代码如下:
*/5 * * * * /usr/bin/curl -o temp.txt http://www.centos.bz/myscript.php
下面的例子是使用 WGET 访问 URL 来每 10 分执行 PHP 脚本。- q 选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。
复制代码 代码如下:
*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.centos.bz/myscript.php
以前对 se 特别感兴趣,但是自己又不会 java,lucene 等搜索引擎开发工具,于是不断挖掘 php 的功效。
最后发现 php 也可以做抓取,并且原理很易:直接获取页面源文件,然后通过正则或字符串的参照截取来获取需要的信息。但是性能上不能和搜索引擎的多线程抓取相比。
实现了上一步之后,又思考着,如果抓取可以自动定时获取,那么人工运行可执行页面也就省下来了。
后来也在一些 php 开源程序中了解到关于 计划任务 的效果:可以定时运行某程序,比如数据库备份,更新缓存,生成静态页面,生成网站地图等。
最近由于项目需要定时更新远程数据库到本地,网上搜了搜,还真找到了。
ignore_user_abort(); 函数搭配 set_time_limit(0); 和 sleep($interval); 即可实现以上自动更新。
先给出一个基本的范式,其中有个人的测试程序:
复制代码 代码如下:
?php
ignore_user_abort(); // run script in background
set_time_limit(0); // run script forever
$interval=30; // do every 15 minutes…
do{
$fp = fopen(text3.txt , a
fwrite($fp, test
fclose($fp);
sleep($interval); // wait 15 minutes
}while(true);
?
首先运行该程序,然后关闭该页面,程序仍然运行中,test 会每隔 30 秒的填补到 text3.txt 文件。
感谢各位的阅读,以上就是“支持 windows 与 linux 的 php 计划如何实现”的内容了,经过本文的学习后,相信大家对支持 windows 与 linux 的 php 计划如何实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!