🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#文件:`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` 数据,下一步嘛,就直接用喽!