PHP url的pathinfo模式加載不同控制器的簡(jiǎn)單實(shí)現(xiàn)
使用自動(dòng)加載和解析url的參數(shù),實(shí)現(xiàn)調(diào)用到不同的控制器,實(shí)現(xiàn)了pathinfo模式和普通的url模式
文件結(jié)構(gòu):
|--Controller
|--Index
|--Index.php
|--Application.php
Application.php
<?php class Application{ public static function main(){ header("content-type:text/html;charset=utf-8"); self::register(); self::router(); } public static function register(){ spl_autoload_register("self::loadClass"); } public static function loadClass($class){ $class=str_replace('\\', '/', $class); $class="./".$class.".php"; require_once $class; } public static function router(){ if(isset($_SERVER['PATH_INFO'])){ $pathinfo=array_filter(explode("/", $_SERVER['PATH_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: $_GET['m']=ucfirst($key); break; case 2: $_GET['c']=ucfirst($key); break; case 3: $_GET['a']=$key; break; default: if($i>3){ if($i%2==0){ $_GET[$key]=$value; } } break; } } } $_GET['m']=!empty($_GET['m']) ? ucfirst($_GET['m']) : 'Index'; $_GET['c']=!empty($_GET['c']) ? ucfirst($_GET['c']) : 'Index'; $_GET['a']=!empty($_GET['a']) ? $_GET['a'] : 'index'; $class="\\Controller\\{$_GET['m']}\\{$_GET['c']}"; $controller=new $class; $controller->$_GET['a'](); } } Application::main();
\Controller\Index\Index.php
<?php namespace Controller\Index; use Service\User; class Index{ public function __construct(){ echo "構(gòu)造方法<br/>"; } public function index(){ new User(); print_r($_GET); } public function login(){ echo "login()"; } }
效果:
以上這篇PHP url的pathinfo模式加載不同控制器的簡(jiǎn)單實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- PHP pathinfo()獲得文件的路徑、名稱(chēng)等信息說(shuō)明
- Nginx隱藏index.php和Pathinfo模式配置例子
- 讓Nginx支持ThinkPHP的URL重寫(xiě)和PATHINFO的方法分享
- 在nginx中配置pathinfo模式支持thinkphp的URL重寫(xiě)
- nginx+thinkphp下解決不支持pathinfo模式
- Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式
- Nginx配置PATHINFO隱藏thinkphp index.php
- PHP命令行執(zhí)行整合pathinfo模擬定時(shí)任務(wù)實(shí)例
- php使用函數(shù)pathinfo()、parse_url()和basename()解析URL
- 詳解PHP中pathinfo()函數(shù)導(dǎo)致的安全問(wèn)題
相關(guān)文章
PHP中__LINE__,__FILE__,__DIR__等常用魔術(shù)常量實(shí)例講解
PHP?向它運(yùn)行的任何腳本提供了大量的預(yù)定義常量。魔術(shù)常量準(zhǔn)確來(lái)說(shuō)并不能算是常量,常量我們?cè)谥暗奈恼轮形覀兘榻B到,常量被定義之后是不能被改變的。但是魔術(shù)常量是PHP預(yù)定義的一些常量,這些預(yù)定義的常量能夠因?yàn)樗谖恢玫淖兓兓?/div> 2022-12-12Laravel中基于Artisan View擴(kuò)展包創(chuàng)建及刪除應(yīng)用視圖文件的方法
這篇文章主要介紹了Laravel中基于Artisan View擴(kuò)展包創(chuàng)建及刪除應(yīng)用視圖文件的方法,簡(jiǎn)單分析了Laravel擴(kuò)展包的安裝及視圖的創(chuàng)建與刪除操作相關(guān)技巧,需要的朋友可以參考下2016-10-10PHP如何獲取當(dāng)前主機(jī)、域名、網(wǎng)址、路徑、端口等參數(shù)
本篇文章主要介紹了PHP如何獲取當(dāng)前主機(jī)、域名、網(wǎng)址、路徑、端口等參數(shù),具有一定的參考價(jià)值,有興趣的可以了解下2017-06-06Laravel中重寫(xiě)資源路由自定義URL的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Laravel中重寫(xiě)資源路由自定義URL的實(shí)現(xiàn)方法,需要的朋友可以參考下2017-08-08幾道坑人的PHP面試題 試試看看你會(huì)不會(huì)也中招
這篇文章主要介紹了幾道坑人的PHP面試題,試試看看你會(huì)不會(huì)也中招,這些題目都用了一些障眼法,需要你有一雙火眼金睛哦,需要的朋友可以參考下2014-08-08php防止sql注入示例分析和幾種常見(jiàn)攻擊正則表達(dá)式
這篇文章主要介紹了php防止sql注入漏洞代碼和分析,最近提供了幾種常見(jiàn)攻擊的正則表達(dá)式,大家參考使用吧2014-01-01php json轉(zhuǎn)換相關(guān)知識(shí)(小結(jié))
這篇文章主要介紹了php json轉(zhuǎn)換相關(guān)知識(shí)(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12php使用函數(shù)pathinfo()、parse_url()和basename()解析URL
眾所周知在PHP中函數(shù)pathinfo()、parse_url()和basename(),這三個(gè)都是解析URL的函數(shù),但是也存在一些區(qū)別,下面列舉了一些實(shí)例,通過(guò)實(shí)例更容易理解這三個(gè)函數(shù)的使用方法和技巧,有需要的朋友可以參考借鑒,感興趣的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11最新評(píng)論