2012-04-12 5 views
-3

Ich versuche, eine mehrstufige Seite Menünavigation zu tun, aber nicht korrekt funktioniert und ich bezweifle, dass es etwas mit der Zeile RecursiveIteratorIterator zu tun, würde jede Hilfe geschätzt werden. Ich dachte in der Lösung so, aber vielleicht ging ich weit. Danke für die Hilfe. Hier ist mein Code:Versuch, mehrstufige dynamische Menü in PHP mit 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

Verengen Sie es auf den _relevanten_ Code, und geben Sie Ihre _question_ eindeutig an. –

Antwort

0

Wenn Sie intensiven Code wie folgt für die Menü Generation haben Ressourcen, dies wird die Serverleistung ernsthaft beeinträchtigen.

+0

Gibt es eine bessere Möglichkeit, ein dynamisches Navigationsmenü dynamisch zu erstellen, sodass Sie nicht den gesamten Pfad eingeben müssen? Danke . – user1207965

+0

Menü besteht aus so vielen Elementen. Es ist nicht nur der Menüpunkt Name und Link. Idealerweise sollten Sie auch alt und title in