PHP實現乙個簡單url路由功能

2022-03-19 15:59:44 字數 2871 閱讀 4538

game.weibo.com後面匹配到的項,指向了某個php頁面,然後根據引數獲取要訪問的遊戲應用標識,後資料庫或者快取裡查詢該應用標識,如果不存在則輸出錯誤提示,如果應用存在則載入遊戲應用鏈結位址。

現在寫乙個php例子,假設我的ip為192.168.0.33,我加了一層名為router的路徑,之後跟隨的是 「/模組名/方法名/引數1的key/引數1的value/….」

也就是要呼叫ha這個模組中的router方法,並傳入url後面的引數/a/b/c/d/index………….

第一步,首先要在伺服器的配置上對/router/路徑進行攔截

呼叫某個資料夾目錄下的index.php頁面,假定現在所有模組使用單獨的檔案存放於class目錄下,該目錄與router平級,如下圖所示:

第二步,路由分發器的實現(index.php)

die('引數錯誤');

54: } else
59: }
60:
61: $module_name = $arr_url['controller'];
62: $module_file = module_dir.$module_name.'.class.php';
63: $method_name = $arr_url['method'];
64:
65:

if (file_exists($module_file)) else

78:     }
79:
80: } else
83:
84:
85: ?>
86:
87:

88:

獲取請求的uri,然後拿到要載入的模組名、呼叫方法名,對uri引數進行簡單的判斷..

第三步,模組的編寫

根據上述的uri,我們要呼叫的是hello模組下的router方法,那麼可以在class目錄下定義乙個名為hello.class.php的檔案(注意linux下是區分大小寫的)

<?php

2:

3:

class hello

11:
12:

function router()

16:
17:

function printresult()

23: }
24:
25: ?>
同理,我們可以編寫ha模組..

這算是實現了很簡單的url路由分發功能了…

本文參考:

《用原生php寫乙個像codeigniter的路由功能》

PHP實現乙個簡單url路由功能

現在寫乙個php例子,假設我的ip為192.168.0.33,我加了一層名為router的路徑,之後跟隨的是 模組名 方法名 引數1的key 引數1的value 也就是要呼叫ha這個模組中的router方法,並傳入url後面的引數 a b c d index 第一步,首先要在伺服器的配置上對 rou...

PHP實現乙個簡單url路由功能

game.weibo.com後面匹配到的項,指向了某個php頁面,然後根據引數獲取要訪問的遊戲應用標識,後資料庫或者快取裡查詢該應用標識,如果不存在則輸出錯誤提示,如果應用存在則載入遊戲應用鏈結位址。現在寫乙個php例子,假設我的ip為192.168.0.33,我加了一層名為router的路徑,之後...

php 路由實現 PHP實現乙個簡單url路由功能

game.weibo.com後面匹配到的項,指向了某個php頁面,然後根據引數獲取要訪問的遊戲應用標識,後資料庫或者快取裡查詢該應用標識,如果不存在則輸出錯誤提示,如果應用存在則載入遊戲應用鏈結位址。現在寫乙個php例子,假設我的ip為192.168.0.33,我加了一層名為router的路徑,之後...