Heim  >  Artikel  >  php教程  >  PHP路由代码

PHP路由代码

PHP中文网
PHP中文网Original
2016-05-25 17:13:551104Durchsuche

PHP路由代码

<?php
/**
 * 路由
 * @author 角度 QQ:1286522207
 *
 */
class Dispatcher extends Action {
	private $url;
	private $config;
	function __construct(){
		$this->routerCheck();
	}
	/**
	 * 路由检测
	 */
	function routerCheck(){
		global $config;
		$this->config=$config;
		$suffix=$this->config[&#39;URL_HTML_SUFFIX&#39;];
		//  获取当前路由参数对应的变量
		$paths = (array_filter(explode(&#39;/&#39;,trim(preg_replace(&#39;/\.&#39;.$suffix.&#39;$/&#39;,&#39;&#39;,
		$_SERVER[&#39;PHP_SELF&#39;]),&#39;/&#39;))));
		if ($this->config[&#39;URL_PATHINFO_MODEL&#39;]==1){
			define(&#39;/index.php/Article&#39;,&#39;/&#39;.$paths[0].&#39;/&#39;);
		}elseif ($this->config[&#39;URL_PATHINFO_MODEL&#39;]==2){
			define(&#39;/index.php/Article&#39;,&#39;/&#39;);
		}
		if (empty($paths[1])){
			$paths[1]=&#39;index&#39;;
		}
		if (empty($paths[2])){
			$paths[2]=&#39;index&#39;;
		}
		if (empty($paths[3])){
			$paths[3]=&#39;index&#39;;
		}
		$this->Action($paths);
	}
	/**
	 * 实例化操作
	 */
	function Action($paths){
		if ($paths[1]==$this->config[&#39;TMPL_ADMIN_PATH&#39;]){
			include APP_PATH.&#39;/&#39;.$this->config[&#39;TMPL_ADMIN_PATH&#39;].&#39;/commonAction.php&#39;;
			$A=APP_PATH.&#39;/&#39;.$paths[1]."/".$paths[2]."Action.class.php";
			$b=$paths[2];
			@$c=$paths[3];
		}else {
			$A=APP_PATH."/Action/".$paths[1]."Action.class.php";
			$b=$paths[1];
			$c=$paths[2];
		}
		if (is_file($A)){
			include $A;
			$action=$b."Action";
			@$controller = new $action();
			if(method_exists($controller, $c)){
				$controller->$c();
			}else {
				exit(&#39;方法不在&#39;);
			}
		}else {
			exit(&#39;类不在&#39;);
		}

	}
	/**
	 * 解析为$_GET全局变量
	 */
	function pathinfo(){
		$pathinfo=(array_filter(explode(&#39;/&#39;,$this->url)));
		$count=count($pathinfo);
		for($foo=1;$foo<$count;$foo+=2){
$_GET[$pathinfo[$foo]]=($foo+2)==$count?array_shift(explode(&#39;.&#39;,$pathinfo[$foo+1])):$pathinfo[$foo+1];
		}
	}
	/**
	 * 重排数组
	 * @param unknown_type $array
	 */
	function Reorder($array){
		$i=0;
		foreach ($array as $row){
			$a[$i++]=$row;
		}
		return $a;
	}
	function __destruct(){
		
	}
}

                   

 以上就是PHP路由代码的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:安全的 URL 跳转Nächster Artikel:PHP 通过 GSM Modem 收发短信