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 条评论