2012-04-12 126 views
-3

我想編寫一個多頁的菜單導航,但不正確地將工作,我懷疑,這是值得做的線RecursiveIteratorIterator使多級動態菜單在PHP中,任何幫助,將不勝感激。我在想什麼在解決方案,但也許我走得很遠。謝謝您的幫助。 這裏是我的代碼:嘗試使用RecursiveIteratorIterator

<ul id="nav"> 
     <?php 
//searchWebsitePagesPath("blog.php"); 
?> 
     <li><a href="<?php echo searchWebsitePagesPath('index.php'); ?>">Home</a></li> 
<!--  <li><a href="index.php" id="here">Home</a></li>  --> 
     <li><a href="<?php echo searchWebsitePagesPath('blog.php'); ?>">Journal</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('gallery.php'); ?>">Gallery</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('files_upload.php'); ?>">Upload</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('contact.php'); ?>">contact</a></li> 
     <li><a href="<?php echo searchWebsitePagesPath('register.php'); ?>">Register</a></li> 
    </ul> 
<?php 

    function searchWebsitePagesPath($pageName){ 
     // echo ("$pageName"); 
     // $files = ""; 
     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('.')); 

     $my_path=""; 
     $myArray=""; 
     $pathReplace=""; 
     $finalPathReplace=""; 
     foreach ($files as $file) { 

      if($file->getFilename() === $pageName){ 
       $pathReplace=str_replace (str_replace('/','\\',$_SERVER['DOCUMENT_ROOT']),'',$file->getRealPath()); 
       $finalPathReplace = $pathReplace ; 
       //   echo $finalPathReplace; 
       $myArray=explode("\\",$pathReplace) ; 
       $count= count($myArray); 
       $reverted = new ArrayIterator(array_reverse($myArray)); 
       $server_path="" ; 
       for($i=1;$i<$count;$i=$i+1) { 
        $server_path =$server_path."../"; 
       } 

       $my_path=$server_path.$reverted[$count-1]; 
      } 

     } 

     $my_path="\"$my_path\"" ; 
     $files = ""; 
     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("$my_path")); 
     foreach ($files as $file) { 

      if($file->getFilename() === $pageName){ 
       $pathReplace=str_replace (str_replace('/','\\',$_SERVER['DOCUMENT_ROOT']),'',$file->getRealPath()); 
       $finalPathReplace ='/'.str_replace ('\\','/',$pathReplace) ; 
       return $finalPathReplace; 
      } 

     } 

    } 

    ?> 
+0

將其縮小到_relevant_代碼,並明確陳述_question_。 – 2012-04-12 04:23:07

回答

0

如果你有資源密集型的這樣的代碼爲菜單生成,這將嚴重影響服務器的性能。

+0

有沒有更好的方式動態製作動態導航菜單,因此您不必輸入所有路徑?謝謝 。 – user1207965 2012-04-12 22:32:12

+0

菜單包含很多項目。它不僅僅是菜單項名稱和鏈接。理想情況下,您還應該在 2012-04-24 05:38:04