原因1:一個更漂亮的URI

1.URI的改進(jìn)

剛剛開始學(xué)PHP時,我們一定寫過blog.php?id=1之類的URI,使用GET方式獲取參數(shù)。這樣的URI有兩個缺點,一是容易被SQL注射攻擊,二是維護(hù)性可讀性差,大家可以比較下面兩種URI哪一種更具備可讀性。

www.mysite.com/blog.php?id=1

上面URI是我們初學(xué)PHP最常用的。

www.mysite.com/blog/1

這種URI是目前最流行的URI,舉個例子,比如很多讀書類,電影類網(wǎng)站,都使用了這樣的URI,這樣的URI要比index.php?a=1&b=2&c=3&d=4....要簡潔很多。

2.實現(xiàn)方法

在WEB項目的根目錄下寫一個.htaccess文件

RewriteEngine On
RewriteRule ^([a-zA-Z0-9/]*)$ index.php/$1

重寫規(guī)則,讓域名后面的字符串直接做為一個參數(shù)傳入index.php,這樣index.php就成為了你整個WEB應(yīng)用的中心,定義了“請求和響應(yīng)的映射”。

原因2:單一入口機(jī)制的易維護(hù)性

1.路由數(shù)組

一個PHP初學(xué)者,剛開始做項目,項目做著做著規(guī)模做大了,常常這個PHP頁面給另一個PHP頁面用GET方法傳值,有時傳的值還不止一個,時間一久,你的WEB項目,N個PHP頁面宛如一個復(fù)雜的蜘蛛網(wǎng),讓你難以維護(hù)。一旦有修改,會涉及很多PHP文件,工作量很大。

MVC的單一入口機(jī)制可以解決維護(hù)難的問題,路由就是一套映射,可以讓你一個URI對應(yīng)一個方法。

$route=[
	''=>'IndexController@Index',
	'blog'=>'BlogController@Show',
	'blog/{id}/{name}'=>'BlogController@Show',
];

2.獲取參數(shù)

$path=$_SERVER['PATH_INFO'];
$path=ltrim($path,'/');
echo $path.PHP_EOL;

我們在瀏覽器里輸入:www.mysite.com/blog/1后,path變量為/blog/1。使用ltrim函數(shù)刪除左邊的斜杠,然后使用explode把字符串拆解成數(shù)組。

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式