程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> PHP單一入口and網址解析

PHP單一入口and網址解析

編輯:PHP基礎知識
 

單一入口概述

單一入口的應用程序就是說用一個文件處理所有的HTTP請求,例如不管是列表頁還是文章頁,都是從浏覽器訪問index.php文件,這個文件就是這個應用程序的單一入口。

打個比方,大家都要上WC,都是男生進一個門,女生進一個門,這兩個門就是WC的兩個入口。而現在去一個公園裡面的WC,外面還有一個門,不管男女都從最外面的門進入,交了錢以後才進入裡面的男廁所門或女廁所門,而這個最外面的門就是這個WC的單一入口。

實現方式

很簡單,可以在訪問index.php時限上一個特定的參數。例如index.php?action=list就是訪問列表頁,而index.php?action=single則訪問文章頁。

實現代碼:
$action=$_GET['action']==''?'index':$_GET['action'];//從url中取出action參數,如果沒有提供action參數,就設置一個默認的'index'作為參數
include('files/'.$action.'.php');//根據$action參數調用不同的代碼文件,從而滿足單一入口實現對應的不同的功能。

單一入口應用程序的優勢

單一入口應用程序的所有http請求都是通過index.php接收並轉發到功能代碼去的,所以在index.php裡面就能完成許多實際工作。

由於所有的http請求都由index.php接收,所以可以進行集中的安全性檢查,如果不是單一入口,那麼開發者就必須記得在每一個文件的開始加上安全性檢查代碼
(當然,安全性檢查可以寫到另一個文件中,只需要include就可以了。)

與安全性檢查類似。在入口裡,我們還可以對url參數和post進行必要的檢查和特殊字符過濾、記錄日志、訪問統計等等各種可以集中處理的任務。
這樣就可以看出,由於這些工作都被集中到了index.php來完成,可以減輕我們維護其他功能代碼的難度。

單一入口應用程序的缺點and解決方法

任何事情都有兩面性,單一入口應用程序也不例外。由於所有http請求都是針對index.php,所以程序的url看起來確實不那麼美觀,特別是對搜索引擎來說很不友好。
要解決這個問題,可以采用網址解析,如
如網址http://www.xxx.com/cms/admin/index.php/article/index.html
第一步,網址解析:
解析得到當前模塊名是article,當前操作是index
注意:網址模塊,操作,參數的分隔符,由配置去控制
$config['URL_MODULE_DEPR']='/';//模塊分隔符
$config['URL_ACTION_DEPR']='-';//操作分隔符
$config['URL_PARAM_DEPR']='-';//參數分隔符

如http://www.xxx.com/cms/admin/index.php/article/index-id-100.html
print_r($_GET);
得到
$_GET['_module']='article';
$_GET['_action']='index';
$_GET['id']=100;
$_GET[0]='id';
$_GET[1]=100;

第二步,檢測初始化init.php程序是否存在,存在則加載。不存在,則跳過。
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved