phpcms关于url路由在二次开发中的使用方法介绍-实现泛解析

phpcms关于url路由在二次开发中的使用方法介绍-实现泛解析,第1张

phpcms关于url路由在二次开发中的使用方法介绍-实现泛解析

v有很强的url路由功能,那么它实际上是用来做什么的,怎么用呢?这里有一个提示:

首先,路由是将客户请求映射到一个特殊的MVC控制板的实际 *** 作。v9的默认路由文档是caches\configs\route.php,默认路由如下:


复制代码如下:
'default'=>;数组('m'=>content','c'=>index','a'=>init')

Default是默认路由,它将被映射到内容控制模块的索引文档的init模式,而没有所有匹配。

我们来看看路由是在哪里解决的。打开\phpcms\libs\classes\param.class.php并查找以下代码:


复制代码编码如下:
$this->;route_config=PC_base::load_config('route',SITE_URL)?pc_base::load_config('route',SITE_URL):PC_base::load_config('route','默认');

这里,装载路由设备。根据变量,定义SITE_URL搜索中是否有路由设备。如果有,加载,否则加载默认设置的默认设备。

变量SITE_URL的定义是什么?看看他的定义:


复制代码编码如下:
/今天浏览的IP地址
define('site_URL',(isset($_server['http_host'])?$_SERVER['HTTP_HOST']:'');

即每个人都浏览的网站的域名,如pic.jb51.net或baike.jb51.net或bbs.jb51.net,没有http。

所以比如每个人都有一个网站域名bbs.jb51.net,他的动态浏览详细地址是M=BBS&c=index&a=初始化。然后,在我们对v9进行域名解析之后,我们可以定位M=BBS&c=index&A=init,此时需要url路由。因此,定义了以下路线:


复制代码如下:
'BBS.jb51.net'=>;数组('m'=>bbs','c'=>index','a'=>init'),

完成了详细的url路由功能。通过使用此功能,您可以完成对不同控制模块和通道的全景解析。
例如,让您的v9企业黄页控制模块创建到m=yp&c=index&a=初始化。
那样的话,每个控制模块都是一个二级域名的子站,另外可以用v9的数据分析表进行分离,可以完成一些很棒的应用。

我们期待与您分享美好的事物。我们正在寻找女性网站的友谊链接(prbr2网站包含超过2m)。谢谢你。
最后一个约定,回复可见。
共享网站的泛分析解决方案:
以下途径:


复制代码如下:
<?Php
/**
*路由环境变量
*默认设置如下:
*"default'=>;array(
*'m'=>;phpcms',
*'c'=>;index',
*'a'=>;init',
*'data'=>;array(
*'POST'=>;数组(
*'catid'=>;1
*),
*'GET'=>;array(
*"contentid'=>;1
*)
*]
*]
*在基数中,“M”是实体模型,“C”是控制面板,“A”是恶性事件,“数据”是其他附加的主要参数。
*data是一个二维数组,默认可以用来设置POST和GET的主要参数。PHP中的两个超静态变量$_POST和$_GET是相互匹配的。在程序流中,您可以应用$_POST['catid']来获取数据下POST中数组的值。
*数据中设置的主要参数水平较低。如果外部程序进程有一个同名的独立变量,它可能会覆盖环境变量中设置的值。例如:
*如果外部程序进程发布了一个独立变量catid=2,那么您一直在程序进程中应用$_POST来获得一个值2,而不是环境变量中设置的1。
*/
/*二级通用域名解析的提供包括以下几类
新项目Region医院门诊*/<;/p>; <;p>switch($GLOBALS['domain']){
case'www':
$array=array('default'=>;数组('m'=>content','c'=>index','a'=>init’));
break;</p>; <;p>默认值:
$array=array(SITE_URL=>;domain($GLOBALS['domain']);
break;</p>; <;p>}</p>; <;p>返回$array

其中涵洞区域定义如下:


复制代码编码如下:
/通用解析后二级域名的解析
Functiondomain(){
$domain=getcache('domain','commons');
$domain_data=$domain[$GLOBALS['domain']];
如果(!empty($domain_data)){
returnparse_domain($domain_data);
}
else{
header("HTTP/1.1404未找到");
header("Status:404未找到");
$db=PC_base::load_model('http404_model');
$dB->;add();
echofile_get_contents(PHPCMS_PATH。404.htm’);
}
}<;/p>; <;p>
functionparse_domain($array){<;/p>; <;p>switch($array['type']){

Case'3833'://手术治疗的新项,即channel
$catid=$array['keyid'];
$id=$_GET['id'];
$GET=$id?数组('id'=>$id,'catid'=>$catid):array('catid'=>;$catid);
$newarr=array('m'=>;content','c'=>index','a'=>$id?show':'lists','data'=>array('GET'=>;$GET));
$GLOBALS['catid']=$catid;
break;</p>; <;p>案例“3834”://metropolitanarea
$newarr=array('m'=>;content','c'=>city','a'=>init','data'=>array('GET'=>;数组('areaid'=>$array['keyid'])));
$GLOBALS['cityid']=$array['keyid'];
break;</p>; <;p>
case'3835'://整形机构
$newarr=array('m'=>;yp','c'=>com_index','a'=>init','data'=>array('GET'=>;数组('userid'=>$array['keyid'])));
$GLOBALS['hospitalid']=$array['keyid'];
break;

}
return$newarr;</p>; <;p>}

所有与莱丹合并的地区都应该是自愿的。
尤其要注意。


复制代码编码如下:
$newarr=array('m'=>;content','c'=>city','a'=>init','data'=>array('GET'=>;数组('areaid'=>$array['keyid'])));

这里的定义方法和数据信息的文件格式一定要合适。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存