㈠ php网站程序如何按照指定时间每日运行
php计划任务(按指定时间来运行某个程序)
前一阵子遇到有一个程序要在某个时间点来运行,但想来想去也不知用那种方法来触发这个程序,第一个想到的时用JS配合PHP来现实,但没有实现成功,后来请教了一个高手说可以在操作系统里配置。在 Linux 中,我们经常用到 crond 服务器来完成这项工作。cron 服务器可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定每天早上4点,对 httpd 服务器重新启动,这就是一个计划任务;windows 的计划任务我们大家都很熟悉。下面我要介绍的是网站计划任务(访问触发)。
第一个首先要解决的时谁来触发,我选择的是用前台页面来触发,
代码如下:
代码:<img src="visit.php?job=cron&t=1212880316" alt="" style="width:0px;height:0px;" />
t=1212880316//这个是时间
第二个要解决的时什么时侯运行,(具体的不讲了,把代码贴出)
代码://计划执行时间
if($job=='cron'){
check_method();
//查询数据库的下一个时间是否小于现在的时间
if($maxrecord['deltemptime']<$nowtime['timestamp']){
$crondb = array();
//day为0为每日 week周 minute时间断 hour什么时侯开始
$rt['cron'] = array('day'=>'0','week'=>$config['cron_week'],'m'=>$config['cron_minute'],'hour'=>$config['cron_hour']);
$crondb[] = $rt;
}
foreach ($crondb AS $key => $cron_val){
//设置了允许分钟段
if (!empty($config['cron_minute'])){
$m = explode(' ', $config['cron_minute']);
$m_now = intval(local_date('i',$nowtime['timestamp']));
if (!in_array($m_now, $m)) {//不包含此分钟的跳出
continue;
}
}
/*执行任务*/
/*********此处是你写的任务***********************/
$next_time = get_next_time($cron_val['cron']);
$DB->query("UPDATE `maxrec` SET `deltemptime`={$next_time}");
}
exit;
}
㈡ php执行cmd脚本超时,不能去改ini因为超时期间页面一直在等待,怎么才能
PHP脚本执行超时的解决办法
在php中默认脚本执行超时时间为30秒了,如果未进行设置30秒之后如果你的脚本还未执行完就会超时了,下面我来给大详解解决PHP脚本执行超时的方法。
php.ini 中缺省的最长执行时间是 30 秒,虽然可以通过调整 php.ini 中 max_execution_time的值来达到目的,但有些情况是没有条件修改php.ini的,如何解决这个问题呢。
一种方法是在 PHP 脚本中加入
代码如下
ini_set('max_execution_time', '0');
将运行时间设置成0(无限值);
另一种方法是在命令行下执行脚本,使用命令行执行脚本时,最大运行时间被设置为了无限值。
修改php.ini的脚本执行时间限制
编辑php.ini,修改max_execution_time值:
代码如下
max_execution_time=500
//此修改需要重新加载php.ini,需要重启web服务器生效。
通过.htaccess 文件设置脚本执行时间
代码如下
php_value max_execution_time 500
在脚本中设置执行的最大时间
代码如下
ini_set('max_execution_time', 500);
用php的函数取消脚本的时间限制
代码如下
set_time_limit(0);
set_time_limit用来设置脚本的超时时间,此函数规定从该句运行时起程序必须在指定秒数内运行结束,超时则程序出错退出。
下面是一个例子. 有10000条数据, 要修改其中某些数据, 运用PHP分步执行处理, 代码如下:
action.php
代码如下
<?php
$stid = isset($_GET['stid'])?$_GET['stid']:0;
$endid = $stid + 100;
$maxid = 10000;
function dosomething(){
//要时间比较多的操作
……
}
$sql_string=”select * from `table` where id>’$stid’ and id<=’$endid’ order by id”;
$datas = getdata_bysql($sql_string);
foreach($datas as $data){
//处理数据
…..
echo $id.” 处理完成. <br />”;
if($id>=$maxid){exit;}
}
if($stid<=$maxid){
$stid = $stid + 100;
$url=”action.php?stid=$stid”;
echo $url;
echo ‘<script language=”javascript”>location=”‘.$url.’”; </script>’;
}
?>
其中的dosomething()是一个耗时操作. 这里我们通过限制id范围来减少运行时间, 运行完后通过javascript的跳转来自动运行下一步
现在dedecms生成html页面时就是这样做
㈢ PHP 设置代码的最长执行时间
php完成某些操作的时候,可能需要较长的执行时间。这就需要设置他的执行时间,否则服务器会在执行时间超时后,停止执行,页面出现空白的情况。下面推荐两种解决方案:
php文件页面设置:
<?php
//修改最大执行时间
ini_set('max_execution_time','0');
//修改此次最大运行内存
ini_set('memory_limit','128M');
/***
*
*代码块省略......
*
*
*/
?>
php.ini配置文件设置(具体值,根据需要设置):
max_execution_time = 60
memory_limit = 128M
注意:如果执行内存完全满足的话,就不需要设置了。具体设置,根据情况灵活设置。
㈣ php定时执行任务怎么写
借助crontab来编写;
编写定时执行脚本(单独的一个php文件,或者某个方法);
配置crontab,指定执行路径地址;
启动crontab服务即可。
㈤ PHP中三种设置脚本最大执行时间的方法
探讨PHP设置脚本最大执行时间的三种方法
在PHP中,设置脚本最大执行时间是关键。默认情况下,脚本最长执行时间为30秒,这在php.ini文件中由max_execution_time变量决定。当脚本运行时间超出这个限制时,需要调整这个设置。
实现调整的方法主要有三种:
1、直接修改php.ini文件
在php.ini中,找到max_execution_time设置并修改其值。这种方法适用于网站维护人员对代码结构不熟悉,需要进行调整的情况。
2、利用PHP的ini_set函数
使用ini_set函数来设置脚本的最大执行时间。通过调用ini_set("max_execution_time", $seconds),将脚本执行时间限制为$seconds秒。然而,这种方法不推荐在生产环境使用,因为ini_set函数可能被禁用。
3、应用set_time_limit函数
使用set_time_limit函数可以为当前脚本设置执行时间限制。通过set_time_limit($seconds),可以将执行时间限制为$seconds秒。这种方法更加灵活且适用于写代码阶段进行调整。
综上所述,根据实际情况选择合适的方法进行脚本执行时间的调整。对于后期维护,修改php.ini文件更为实用;而在代码编写过程中,应用set_time_limit函数更为推荐,避免了可能存在的ini_set函数禁用问题。
㈥ 大侠们,请教:我想取一段时间来执行一个动作,比如每天上午10点到11点半这个时间段。用PHP代码如何实现
$Hour=Date('Hs'); //获取当前的小时数和秒数,格式是1030, 10点30分
if(1000<$Hour&&1130>$Hour){
执行代码
}