首页 > 后端开发 > 正文

php如何制作类似setInterval函数

2024-07-15 19:34:02 | 我爱编程网

今天我爱编程网小编整理了php如何制作类似setInterval函数相关内容,希望能帮助到大家,一起来看下吧。

本文目录一览:

php如何制作类似setInterval函数

php如何制作类似setInterval函数

PHP定时执行的三种方式实现

1、windows 的计划任务

2、linux的脚本程序

3、让web浏览器定时刷新

具体实现

1、windows计划任务

PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本。

2、linux 的脚本实现


这里主要使用到crontab这个命令,
使用方式 :

crontab   filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

说明 :

crontab是用来让使用者在固定时间或固定间隔执行程式之用

使用crontab写shell脚本,然后让PHP调用shell,这个是利用linux的特性,应该还不算PHP自身语言的特性 我爱编程网

3、PHP实现定时执行计划任务


使用php让浏览器刷新需要解决几个问题
PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行
PHP定时执行的代码:

<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
    //这里是你要执行的代码    
    sleep($interval);
}while(true);

php如何制作类似setInterval函数

PHP file_get_contents 函数超时的几种解决方法

这里就简单介绍两种:
一、增加超时的时间限制
这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。
我一开始以为set_time_limit也能影响到file_get_contents,后来经测试,是无效的。真正的修改file_get_contents延时可以用resource
$context的timeout参数:
复制代码
代码如下:
$opts
=
array(
‘http'=>array(
‘method'=>”GET”,
‘timeout'=>60,
)
);
$context
=
stream_context_create($opts);
$html
=file_get_contents(' ',
false,
$context);
fpassthru($fp);
二、一次有延时的话那就多试几次
有时候失败是因为网络等因素造成,没有解决办法,但是可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失败将返回
FALSE,所以可以下面这样编写代码:
复制代码
代码如下:
$cnt=0;
while($cnt
<
3
&&
($str=@file_get_contents('http…'))===FALSE)
$cnt++;

php如何制作类似setInterval函数

大师求救,php的sleep()函数出现中断,什么原因?

我爱编程网(https://www.52biancheng.com)小编还为大家带来大师求救,php的sleep()函数出现中断,什么原因?的相关内容。

function ok后面要有个括号。这个不重要。
中断不是因为php程序,不是sleep的问题,一个原因是浏览器主动断开了,

一般来说,http来连接的,客户端都会等待一定时间后,就认为是连接丢失了,就会报504错误了。
也有个原因是webserver的原因,进程管理模块认为你的子进程进入了死循环,主动终止了。
还有个原因,就是:我不懂,我是随便胡说的,哈哈。

以上就是php如何制作类似setInterval函数全部内容,更多相关信息,敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php如何制作类似setInterval函数”相关推荐
php如何定义一个函数
php如何定义一个函数

php如何定义一个函数函数是完成一个特定功能的代码集合,可以分为系统函数和用户函数。用户可以通过创建自定义函数实现特定需要。1.函数定义语法结构:PHP中允许用户使用function关键字创建一个自定义函数。语法结构:function函数名称(参数1,参数2,...){//函数内的代码}PHP对函数名称的限制比较少,可以是以字母或下划线开头后跟字母、下划线或数字的

2024-07-14 16:14:08
php函数大全 PHP处理数组常用的几个函数
php函数大全 PHP处理数组常用的几个函数

php随机数函数在PHP中,随机数(RandomNumber)是指一组伪随机数(Pseudo-randomNumber),即看起来随机的数字序列,但实际上是由一个算法生成的。PHP提供了一些内置函数,可以用来生成伪随机数,这些函数可以用于各种应用程序,如游戏、密码学、模拟等。以下是一些PHP中常用的生成随机数的函数:1、rand()函数:生成一个指定范围内的随机整数。例如

2024-07-14 08:20:17
PHP中,参数调用相应函数是如何实现的?
PHP中,参数调用相应函数是如何实现的?

PHP直接调用函数和调用另外一个文件中的函数的区别//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。$msg=test_msg();function test_msg(){echo "";}//调用外部文件中的函数//首先引入文件include_once 'file.php';$msg=t

2024-07-13 21:50:55
[php]如何设定一个函数的某参数可有可无?
[php]如何设定一个函数的某参数可有可无?

用PHP定义一个函数,返回3个参数中的最大值?可以使用以下代码定义一个函数,返回3个参数中的最大值:functionfindMax($num1,$num2,$num3){$max=$num1;if($num2&gt;$max){$max=$num2;}if($num3&gt;$max){$max=$num3;}return$max;}该函数接受3个

2024-07-14 18:53:58
php函数 用自己的语言说出php中数组的常用函数和用法?
php函数 用自己的语言说出php中数组的常用函数和用法?

用自己的语言说出php中数组的常用函数和用法?array_filter:过滤数组中的无效元素,可以使用回调函数过滤array_map:使用回调函数依次处理所有元素implode:将一维数组转为特定符号隔开的字符串,explode: 将特定符号隔开的字符串转为一维数组sort/ksort:将数组进行升序排序array_unique:将数组元素去重array

2024-07-13 13:08:22
请问PHP构造函数的含义 php this和self的区别
请问PHP构造函数的含义 php this和self的区别

PHP的其他方面PHP在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:Adabas、D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MicrosoftSQLServer、·MySQL、Solid、Sybase、Oracle、PostgreSQL而在Internet上它也支持了相当多的通讯协议(prot

2024-07-14 11:50:21
Java如何制作启动界面?
Java如何制作启动界面?

eclipse创建java程序教程eclipse软件操作方法01首先确保电脑上已经配置好java的环境,安装了eclipse软件,如果确定已经完成了,则双击鼠左键打开eclipse软件否则可参考如下链接,分别为安装java环境和配置java环境和下载安装eclipse的详细步骤,可参。1首先java程序的运行你需要下载和安装JDK,这是java运行的必备环境2在桌面上找到eclipes,

2024-05-16 17:08:57
我的世界用scratch如何制作?
我的世界用scratch如何制作?

我的世界用scratch如何制作?Scratch是专为儿童开发的编程语言,用于拓展他们的思维。今天,我将分享如何在Scratch中创建我的世界的制作方法。1.打开浏览器,在搜索栏中输入“Scratch在线编辑器”进行搜索,并点击前往它的官网。2.在Scratch在线编辑器网站中,会自动出现切换语言的选择框,选择简体中文。3.设置好语言后,就可以开始编程了。开始你的我的世界编程

2024-01-05 06:08:40