PHP指令行执行整合pathinfo模拟定时任务实例__第1页
PHP指令行执行整合pathinfo模拟定时任务实例__第2页
PHP指令行执行整合pathinfo模拟定时任务实例__第3页
PHP指令行执行整合pathinfo模拟定时任务实例__第4页
PHP指令行执行整合pathinfo模拟定时任务实例__第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP指令行执行整合pathinfo模拟定时任务实例_ 指令行模式下,依据传参,调用不同掌握器。掌握器中依据配置定时执行指定方法 Application.php ?php class Application public static function main() header(content-type:text/html;charset=utf-8); self:register(); self:commandLine(); self:pathInfo(); /自动加载 public static function loadClass($class) $class=str_replace(

2、, /, $class); $dir=str_replace(, /, _DIR_); $class=$dir./.$class.php; require_once $class; /指令行下 public static function commandLine() if(php_sapi_name()=cli) $_SERVERPATH_INFO=; foreach ($_SERVERargv as $k=$v) if($k=0) continue; $_SERVERPATH_INFO.=/.$v; /pathinfo处理 public static function pathInfo()

3、if(isset($_SERVERPATH_INFO) $pathinfo=array_filter(explode(/, $_SERVERPATH_INFO); for($i=1;$i=count($pathinfo);$i+) $key=isset($pathinfo$i) ? $pathinfo$i : ; $value=isset($pathinfo$i+1) ? $pathinfo$i+1 :; switch ($i) case 1: $_GETm=ucfirst($key); break; case 2: $_GETc=ucfirst($key); break; case 3: $

4、_GETa=$key; break; default: if($i3) if($i%2=0) $_GET$key=$value; break; $_GETm=!empty($_GETm) ? ucfirst($_GETm) : Index; $_GETc=!empty($_GETc) ? ucfirst($_GETc) : Index; $_GETa=!empty($_GETa) ? $_GETa : index; $class=Controller$_GETm$_GETc; $controller=new $class; $controller-$_GETa(); /致命错误回调 publi

5、c static function shutdownCallback() $e=error_get_last(); if(!$e) return; self:errorHandler($etype,font color=redFatal Error/font .$emessage,$efile,$eline); /错误处理 protected static function myErrorHandler($errno,$errstr,$errfile,$errline) list($micseconds,$seconds)=explode( ,microtime(); $micseconds=

6、round($micseconds*1000); $micseconds=strlen($micseconds)=1 ? 0.$micseconds : $micseconds; if(php_sapi_name()=cli) $break=rn; else $break=br/; $mes=.date(Y-m-d H:i:s,$seconds).:$micseconds .$errfile. .$errline. line .$errstr.$break; echo $mes; /注册 public static function register() error_reporting(0);

7、 set_error_handler(function($errno,$errstr,$errfile,$errline) self:myErrorHandler($errno,$errstr,$errfile,$errline); ); register_shutdown_function(function() self:shutdownCallback(); ); spl_autoload_register(self:loadClass); Application:main(); ControllerClientCron.php ?php namespace ControllerClien

8、t; class Cron private $second=0; private $tasks=array( array(duration=5,method=doSomething), array(duration=2,method=doSomething2), ); public function index() while (true) sleep(1); $this-second+; foreach($this-tasks as $task) if($this-second%$taskduration=0) $this-$taskmethod(); public function doSomething() echo .date(Y-m-d H:i:s,time(). doSomething1 ok!rn; public function doSomething2() echo .date(Y-m-d H:i:s,time(). doSomething2 ok!rn; 效果: 方法doSomethin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论