怎么让php每天定时执行一次代码

cy527300280 2009-12-16 11:10:52
是在虚拟空间里,只有ftp,有没有办法每天执行一次代码
...全文
1590 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
datoulab 2011-01-13
  • 打赏
  • 举报
回复
PHP定时执行程序代码,关掉浏览器,PHP脚本也可以继续执行

<?php
ignore_user_abort(); // 即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去
$interval=20; // 时间间隔 单位 秒
$key_file="key.txt"; // 配置文件
if (isset($_GET["s"]))
{
if ($_GET["s"]=="0"){ // 停止工作,但不退出
$s="false";
echo "Function is off";
}
elseif ($_GET["s"]=="1"){ // 工作
$s="true";
echo "Function is on";
}
elseif ($_GET["s"]=="2"){ // 退出
$s="die";
echo "Function exited";
}
else
die("Err 0:stop working 1:working 2:exit");
$string = "<?php\n return \"".$s."\";\n?>";
write_inc($key_file,$string,true);
exit();
}
if(file_exists($key_file)){
do{
$mkey = include $key_file;
if ($mkey=="true"){ // 如果工作
///////////////////// 工作区间 //////////////////////////////////
$showtime=date("Y-m-d H:i:s");
$fp = fopen("func.txt","a");
fwrite($fp,$showtime."\n");
fclose($fp);
///////////////////////////////////////////////////////////////////
}
elseif ($mkey=="die"){ // 如果退出
die("I am dying!");
}
sleep($interval); // 等待$interval分钟
}while(true);
}
else
die($key_file." doesn"t exist !");
function write_inc($path,$strings,$type=false)
{
$path=dirname(__FILE__)."/".$path;
if ($type==false)
file_put_contents($path,$strings,FILE_APPEND);
else
file_put_contents($path,$strings);
}
?>
myqq155120699 2011-01-13
  • 打赏
  • 举报
回复
楼上的方法有一定的可行性。
zhuhuquan29 2009-12-17
  • 打赏
  • 举报
回复
ajax 实行客户端和服务器的异步交互来完成吧最简单 没到时间让浏览器自动发送请求来完成
jeff1987 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 baiyuxiong 的回复:]
你在别的地方,每天访问一下那个网址就行了。
[/Quote]

是呀,你发一个ajax的(或者别的)请求过去不就行了
defaultError 2009-12-17
  • 打赏
  • 举报
回复
学习!
kyzy_yy_pm 2009-12-17
  • 打赏
  • 举报
回复
BILLSSJONE 2009-12-17
  • 打赏
  • 举报
回复
客戶不需要進服務器,你能進就行,你幫他設置一個crontab定時任務,如果全部都沒權限在服務器上設置,只能在網頁上設置,那觸發就得靠執行網頁。
BILLSSJONE 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cy527300280 的回复:]
首先客户那目前在windows上测试,测试完成后在linux服务器上,但是他不能进服务器,只能通过ftp上传下载,要是每天都要运行一次页面,那不行啊,万一今天没有开电脑呢
[/Quote]
應該不是進服務器的問題,ftp的賬號和密碼可以用SSH客户端進服務器,問題是這個賬號有沒有權限使用crontab
cy527300280 2009-12-17
  • 打赏
  • 举报
回复
OK,明白了,谢谢大家帮助
cy527300280 2009-12-16
  • 打赏
  • 举报
回复
第一个不行,因为不能进服务器
第二三个,要打开页面才会执行
t240034137 2009-12-16
  • 打赏
  • 举报
回复
WINDOWS 的任务和计划
PHP 的SLEEP()
JS的TIMEOUTSET()
骄傲青蛙 2009-12-16
  • 打赏
  • 举报
回复
除了在服务端动手脚, 还有其它方法吗? 如果不通过浏览器
ljxjhl 2009-12-16
  • 打赏
  • 举报
回复
可以用js控制啊,js定时来调用php文件就行了
codeyell-com 2009-12-16
  • 打赏
  • 举报
回复
你在别的地方,每天访问一下那个网址就行了。
wqli07 2009-12-16
  • 打赏
  • 举报
回复
第一次接触....帮顶
乐游 之 神话 2009-12-16
  • 打赏
  • 举报
回复
这个计划任务给个具体的说法呀,比如每天定时执行一个页面让他发邮件
t240034137 2009-12-16
  • 打赏
  • 举报
回复
给你参考下http://bbs.phphubei.com/thread-7992-1-1.html
还有我不理解什么叫不能进服务器?
cy527300280 2009-12-16
  • 打赏
  • 举报
回复
首先客户那目前在windows上测试,测试完成后在linux服务器上,但是他不能进服务器,只能通过ftp上传下载,要是每天都要运行一次页面,那不行啊,万一今天没有开电脑呢
t240034137 2009-12-16
  • 打赏
  • 举报
回复
crontab定时执行 PHP 在LINUX
还有你说的,第一个不行,因为不能进服务器 。不知道你什么环境?还有假如WIN怎么不可以进服务器呢?
第二三个,要打开页面才会执行。 你可以设置IE主页为要执行的页面 然后在任务计划下设置执行IE。就可以了。或者自己写一个.BAT执行多个文件呀,想怎么写都可以,在用任务计划执行XXX.BAT
xxx.bat内容:
E:\PHP\php.exe -q E:\test.php
littlebirds 2009-12-16
  • 打赏
  • 举报
回复
关注一下。
加载更多回复(1)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧