手机
当前位置:查字典教程网 >编程开发 >php教程 >一个简单的php路由类
一个简单的php路由类
摘要:本文实例为大家分享了php编写一个简单的路由类,供大家参考,具体内容如下

本文实例为大家分享了php编写一个简单的路由类,供大家参考,具体内容如下

<?php namespace cmhcHcrail; class Hcrail { /** * callback function * @var callable */ protected static $callback; /** * match string or match regexp * @var string */ protected static $match; protected static $routeFound = false; /** * deal with get,post,head,put,delete,options,head * @param $method * @param $arguments * @return */ public static function __callstatic($method, $arguments) { self::$match = str_replace("//", "/", dirname($_SERVER['PHP_SELF']) . '/' . $arguments[0]); self::$callback = $arguments[1]; self::dispatch(); return; } /** * processing ordinary route matches * @param string $requestUri * @return */ public static function normalMatch($requestUri) { if (self::$match == $requestUri) { self::$routeFound = true; call_user_func(self::$callback); } return; } /** * processing regular route matches * @param string $requestUri * @return */ public static function regexpMatch($requestUri) { //处理正则表达式 $regexp = self::$match; preg_match("#$regexp#", $requestUri, $matches); if (!empty($matches)) { self::$routeFound = true; call_user_func(self::$callback, $matches); } return; } /** * dispatch route * @return */ public static function dispatch() { if (self::$routeFound) { return ; } $requestUri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $requestMethod = $_SERVER['REQUEST_METHOD']; if (strpos(self::$match, '(') === false) { self::normalMatch($requestUri); } else { self::regexpMatch($requestUri); } } /** * Determining whether the route is found * @return boolean */ public static function isNotFound() { return !self::$routeFound; } }

下载地址:https://github.com/cmhc/Hcrail

希望本文所述对大家学习PHP程序设计有所帮助。

【一个简单的php路由类】相关文章:

php编写一个简单的路由类

一个php作的文本留言本的例子(六)

一个程序下载的管理程序(二)

一个php作的文本留言本的例子(三)

一个域名查询的程序

一个用于MySQL的PHP XML类

一个程序下载的管理程序(四)

php一个解析字符串排列数组的方法

PHP 中的类

一个可查询所有表的“通用”查询分页类

精品推荐
分类导航