支持windows与linux的php计划如何实现

58次阅读
没有评论

共计 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 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-14发表,共计2696字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)