PHP单一入口模式

熊海
熊海

以前在网上看到过一些程序所有的链接都是一个文件名,常用的emblog系统就是使用这样的模式,一开始我以为是通过传过来的值,然后做多个判断从而转到对应的文件。

考虑过用这种方法,但感觉比较繁琐,今天在网上下载了一个国外开发的网页模板,下载来看到里面有一个index.php的文件,然后一下子明白了其中的操作方式,和我以前的操作方式有很大的改变。这也就是单一入口模式。

通俗一点讲就是所有的链接都是以?开头,再带有变量或者参数,如下:
域名/?about
域名/?post=1
域名/?contact
方法一:index.php的文件代码如下:

<?php
$page = array_keys($_GET);
$page = strtolower(current($page));
switch ($page) {
    case '':
        include 'apps/index.php';
        break;
    case 'about':
        include 'apps/about.php'; 
        break;
}
?>

通过以上代码我们就能很容易了解,原来是根据请求,载入相应的页面。

因为入口比较统一,这样做的好处还是比较多的,对于程序的一些安全过滤或者进行其他维护操作都是非常方便的,另外还有效的缩短了URL地址长度。

当然以上这个方法对于页面比较多的程序还是很繁琐的,需要逐一进行判断,另外一种方法则可以解决这个问题。

方法二(推荐):index.php的文件代码如下:

<?php
//单一入口模式
error_reporting(0); //关闭错误显示
$file=addslashes($_GET['r']); //接收文件名
$action=$file==''?'index':$file; //判断为空或者等于index
include('apps/'.$action.'.php'); //载入相应文件
?>

对于没有特殊要求的程序,大家不妨试试这二种方法。

支付宝打赏支付宝 微信
微信扫一扫
0 条评论

评论:

发送