-3

マルチレベルのページ メニュー ナビゲーションをコーディングしようとしていますが、正しく機能していません。それが 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;
            }

        }

    }

    ?>
4

1 に答える 1

0

このようなメニュー生成用のリソースを集中的に使用するコードがある場合、これはサーバーのパフォーマンスに深刻な影響を与えます。

于 2012-04-12T04:48:43.717 に答える