本文整理汇总了PHP中Typecho_Router::current方法的典型用法代码示例。如果您正苦于以下问题:PHP Typecho_Router::current方法的具体用法?PHP Typecho_Router::current怎么用?PHP Typecho_Router::current使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Typecho_Router
的用法示例。
在下文中一共展示了Typecho_Router::current方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: dispatch
/**
* 路由分发函数
*
* @param string $path 目的文件所在目录
* @return void
* @throws Typecho_Route_Exception
*/
public static function dispatch()
{
/** 获取PATHINFO */
$pathInfo = self::getPathInfo();
foreach (self::$_routingTable as $key => $route) {
if (preg_match($route['regx'], $pathInfo, $matches)) {
self::$current = $key;
try {
/** 载入参数 */
$params = NULL;
if (!empty($route['params'])) {
unset($matches[0]);
$params = array_combine($route['params'], $matches);
}
$widget = Typecho_Widget::widget($route['widget'], NULL, $params);
if (isset($route['action'])) {
$widget->{$route['action']}();
}
return;
} catch (Exception $e) {
if (404 == $e->getCode()) {
Typecho_Widget::destory($route['widget']);
continue;
}
throw $e;
}
}
}
/** 载入路由异常支持 */
require_once 'Typecho/Router/Exception.php';
throw new Typecho_Router_Exception("Path '{$pathInfo}' not found", 404);
}
示例2: dispatch
/**
* 路由分发函数
*
* @param string $path 目的文件所在目录
* @return void
* @throws Typecho_Route_Exception
*/
public static function dispatch()
{
/** 获取PATHINFO */
$pathInfo = self::getPathInfo();
// 后台URL修改,收录的URL不能访问,临时处理302
//echo $pathInfo; exit;
if (preg_match('/^\\/archives\\/\\d*\\/?$/isU', $pathInfo)) {
if (substr($pathInfo, -1) == '/') {
$pathInfo = substr($pathInfo, 0, -1);
}
header('Location:http://blog.chromev.com' . $pathInfo . '.html', true, 302);
exit;
}
foreach (self::$_routingTable as $key => $route) {
if (preg_match($route['regx'], $pathInfo, $matches)) {
self::$current = $key;
try {
/** 载入参数 */
$params = NULL;
if (!empty($route['params'])) {
unset($matches[0]);
$params = array_combine($route['params'], $matches);
}
$widget = Typecho_Widget::widget($route['widget'], NULL, $params);
if (isset($route['action'])) {
$widget->{$route['action']}();
}
return;
} catch (Exception $e) {
if (404 == $e->getCode()) {
Typecho_Widget::destory($route['widget']);
continue;
}
throw $e;
}
}
}
/** 载入路由异常支持 */
throw new Typecho_Router_Exception("Path '{$pathInfo}' not found", 404);
}