本文目录一览:
- 请问怎么才能让php每隔一段时间自动执行一段代码
- php如何每天定时执行
- php继承一个父类,如何自动执行父类方法
- php 当满足某个条件后自动执行读取另外一个PHP文件
- 如何在php类中执行某方法的时候自动执行另一个方法?比如我执行数据插入的时候自动运行数据过滤的方法?
- php定时执行任务怎么写?
请问怎么才能让php每隔一段时间自动执行一段代码
PHP有sleep()
函数
另外也可以结合xajax或JS来做
xajax 0.5 有延时方法
JS有 setTimeout()
都可以的~~
php如何每天定时执行
php做不到每天定时执行,只有java或者c可以,因为php是不访问页面就不会动得代码,但是有一个方法可以曲线救国 你写一个页面是你要每天定时执行的页面,然后视你的操作系统而言,做定时任务,定时去访问这个页面 如果是windows请使用任务计划功能 如果是linux请使用定时任务Cron,在定时的时候使用curl来访问你那个页面。以下我只贴出linux的解决方案,因为一般服务器都是linux的,windows的大家都会
linux cron 入门
Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local
这个脚本的末尾加上:
/sbin/service crond start
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u
:设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab -l
:列出某个用户cron服务的详细内容crontab -r
:删除某个用户的cron服务crontab -e
:编辑某个用户的cron服务 比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls /tmp/ls.txt
任务调度的crond常驻命令 crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
1、linux任务调度的工作主要分为以下两类:
- 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
- 个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
2.crontab命令选项:
-u
指定一个用户-l
列出某个用户的任务计划-r
删除某个用户的任务-e
编辑某个用户的任务
3.cron文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
(取值范围,0表示周日一般一行对应一个任务)
4.记住几个特殊符号的含义:
*
代表取值范围内的数字/
代表"每"-
代表从某个数字到某个数字,
分开几个离散的数字
一、任务调度设置文件的写法
可用crontab -e
命令来编辑,编辑的是/var/spool/cron
下对应用户的cron文件,也可以直接修改/etc/crontab
文件
具体格式如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义如下:
Minute
:每个小时的第几分钟执行该任务Hour
:每天的第几个小时执行该任务Day
:每月的第几天执行该任务Month
:每年的第几个月执行该任务DayOfWeek
:每周的第几天执行该任务Command
:指定要执行的程序 在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
举例如下:
5 * * * * ls
:指定每小时的第5分钟执行一次ls命令30 5 * * * ls
:指定每天的 5:30 执行ls命令30 7 8 * * ls
:指定每月8号的7:30分执行ls命令30 5 8 6 * ls
:指定每年的6月8日5:30执行ls命令30 6 * * 0 ls
:指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]30 3 10,20 * * ls
:每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]25 8-11 * * * ls
:每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]*/15 * * * * ls
:每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]30 6 */10 * * ls
:每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ] 每天7:50以root 身份执行/etc/cron.daily
目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily
[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
二、新增调度任务
新增调度任务可用两种方法:
- 在命令行输入:
crontab -e
然后添加相应的任务,wq存盘退出。 - 直接编辑
/etc/crontab
文件,即vi /etc/crontab
,添加相应的任务。
三、查看调度任务
crontab -l
:列出当前的所有调度任务crontab -l -u jp
:列出用户jp的所有调度任务
四、删除任务调度工作
crontab -r
:删除所有任务调度工作
五、任务调度执行结果的转向
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls /jp/test 21
注:21 表示执行结果及错误信息。
编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron
内的所有文件,还需要读一次/etc/crontab
,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab
是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了 例如:
- 在命令行输入:
crontab -e
然后添加相应的任务,wq存盘退出。 - 直接编辑
/etc/crontab
文件,即vi /etc/crontab
,添加相应的任务
11 2 21 10 * rm -rf /mnt/fb
php继承一个父类,如何自动执行父类方法
你在父类写一个成员函数 然后子类继承 创建子类对象的时候 可以点出来父类的成员函数 比如
Student zs = new Student();
zs.SayHello() //点出来的是从父类的继承来的成员函数
输出结果为父类的-我是人类
public class Person {
public void SayHello() { //这只是父类的SayHello
echo "我是人类";
}
}
public class Student:Person { //已经继承了Person父类
//我什么都没写
}
php 当满足某个条件后自动执行读取另外一个PHP文件
//被调用的文件如果不存在会报错,脚本中断。
require(文件路径);
//被调用的文件如果不存在会报错,脚本中断。
//被调用文件在当前脚本中仅执行一次。
require_once(文件路径);
//被调用的文件如果不存在不会报错,脚本继续。
//被调用文件在当前脚本中可重复执行。
include(文件路径);
//被调用的文件如果不存在不会报错,脚本继续。
//被调用文件在当前脚本中仅执行一次。
include_once(文件路径);
这4个函数均可引用PHP文件。
如何在php类中执行某方法的时候自动执行另一个方法?比如我执行数据插入的时候自动运行数据过滤的方法?
PHP没有事件机制。有一些模拟事件的方法,但我觉得代码太繁琐了,不实用。这里我向你推荐PHP的魔术方法。 魔术方法会在调用一个不存在或是非公有的方法之前,自动根据某种规则调用另外一个方法。比如下面的类就是了这样:在调用insert方法时,判断类中是否有before_insert方法。如果有则先调用before_insert方法,并检查它的返回值,决定是否继续调用insert。如果before_insert是一个过滤函数,如果验证失败就会返回false,insert插入就不会进行了。 如果不明白可以阅读PHP手册中介绍魔术方法的部分。
<?php
class MyClass {
// 如果使用类的实例调用$method,但$method方法不是公有的,就会触发此函数。
public function __call($method, $args) {
// 检查是否存在方法$method
if (method_exists($this, $method)) {
$before_method = 'before_' + $method;
// 检查是否存在方法$before_method
if (method_exists($this, $before_method)) {
// 调用$before_method,检查其返回值,决定是否跳过函数执行
if (call_user_func_array(array($this, $before_method), $args)) {
return call_user_func_array(array($this, $method), $args);
}
} else {
// $before_method不存在,直接执行函数
return call_user_func_array(array($this, $method), $args);
}
} else {
throw new Exception('no such method ' . $method);
}
}
// 注意这里不要写成public
private function insert() {}
// 低调!不要写出公有的
private function before_insert() {}
}
$myobj = MyClass;
$myobj->insert('mytable', array('name'='2012'));
php定时执行任务怎么写?
定时任务最好的方法是用linux系统的加护任务来写,你是虚拟主机那无法用这个法子,你可以写前台访问触发的法子,把代码写到页面,判断时间段如果是在设置的时间段就执行。