Ste*_*Luv 13 php url frameworks routes
我正在创建一个PHP框架,我有些疑惑......
框架以这种方式获取URL:
http:/web.com/site/index
它需要第一个参数来加载controller(site)然后加载特定的动作(index).
如果您已经在基本URL中安装了框架,则可以正常工作,但如果您将其安装在如下的子文件夹中:
http://web.com/mysubfolder/controller/action
我的脚本将其解析为controller = mysubfolder和action = controller.
如果你有更多的子文件夹,结果将是最糟糕的.
这是我的路线代码:
Class Route
{
private $_htaccess = TRUE;
private $_suffix = ".jsp";
public function params()
{
$url='';
//nombre del directorio actual del script ejecutandose.
//basename(dirname($_SERVER['SCRIPT_FILENAME']));
if($this->_htaccess !== FALSE):
//no está funcionando bien si está en un subdirectorio web, por ej stynat.dyndns.org/subdir/
// muestra el "subdir" como primer parámetro
$url = $_SERVER['REQUEST_URI'];
if(isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])):
$url = str_replace("?" . $_SERVER['QUERY_STRING'], '',$url);
endif;
else:
if(isset($_SERVER['PATH_INFO'])):
$url = $_SERVER['PATH_INFO'];
endif;
endif;
$url = explode('/',preg_replace('/^(\/)/','',$url));
var_dump($url);
var_dump($_GET);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你提供的所有帮助.
Kri*_*ian -1
基本上是在第一个斜杠之后获取 url 字符串,然后将其分解为一个数组(我使用“/”作为分隔符)。
然后小心地 array_shift 关闭你的元素并将它们存储为变量
item 0: controller
item 1: the action / method in that controller
item 2 thru n: the remaining array is your params
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7423 次 |
| 最近记录: |