多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#文件:`nav.php` 位置:`\application\Portal\nav.php` ``` private function _select(){ $apps=sp_scan_dir(SPAPP."*"); $navs=array(); foreach ($apps as $a){ if(is_dir(SPAPP.$a)){ if(!(strpos($a, ".") === 0)){ $navfile=SPAPP.$a."/nav.php"; $app=$a; if(file_exists($navfile)){ $navgeturls=include $navfile; foreach ($navgeturls as $url){ $nav= file_get_contents(U("$app/$url",array(),false,false)); //去除识别域名一直加载的BUG //$nav= file_get_contents(U("$app/$url")); $nav=json_decode($nav,true); $navs[]=$nav; } } } } } return $navs; } ``` 研究原因: 在 NavController.class.php 这个文件中,有一个函数是:`private function _select()`,在这个有一句`$navfile=SPAPP.$a."/nav.php"; ` 这句话的意思是从 `application` 目录下的文件中一个一个找有没有 `nav.php` ,如果有的话,就取json数据。而在 `Portal`文件夹下正好有一个 `nav.php` ,它的代码如下: ``` <?php return array( "List/nav_index", "Page/nav_index", ); ``` 于是我们就得到了两个地址, ``` /index.php?g=Portal&m=List&a=nav_index /index.php?g=Page&m=List&a=nav_index ``` 再用 `U`方法,直接把前边的网址加上,再用 `file_get_content` 得到地址,再用 `json_decode` 就可以解析为 `json` 数据,下一步嘛,就直接用喽!