0

php を使用してルート ファイルを他のフォルダのように見せる方法はありますか。

たとえば、ルートフォルダーにindex.phpがあり、index.phpにアクセスすると、すべてのフォルダーとサブフォルダーでも同様に動作するようにしたい

index.php を実行すると、すべてのフォルダーとサブフォルダーでも実行されます

以下の例で私の質問を理解してください

index.php はルートにあり、ルートにも別のフォルダーがあるため、ブラウザーから index.php にアクセスすると、他のフォルダーでも実行されます。

http://mysite.com/index.php will also behave as if its in sub folder too
http://mysite.com/folder1/index.php
http://mysite.com/folder2/index.php
http://mysite.com/folder3/index.php

index.php はこれらのフォルダーにはありませんが、同時にこれらのフォルダーでも実行する必要があります

上記の例で理解するのは難しくないと思います。それに応じて答えてください

更新 2

これがindex.phpコードです

「files」「images」「txt」「related」フォルダーをスキャンし、各フォルダー内のファイルを取得してから、includes.php (ルート) に書き込みます。

$path = array("./files/","./images/","./txt/","./related/");

$path2= array("http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/files/","http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/images/","http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/txt/","http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/related/");

$start="";

$Fnm = "./include.php";

$inF = fopen($Fnm,"w");

fwrite($inF,$start."\n");



    $folder = opendir($path[0]);

    while( $file = readdir($folder) ) {

           if (($file != '.')&&($file != '..')&&($file != 'index.htm')) {

                $folder2 = opendir($path[1]);

                $folder3 = opendir($path[2]);
                $folder4 = opendir($path[3]);

                $imagename ='';

                $txtname ='';
                $related ='';

                while( $file2 = readdir($folder2) ) {

                    if (substr($file2,0,strpos($file2,'.')) == substr($file,0,strpos($file,'.'))){

                        $imagename = $file2;

                    }

                }
while( $file4 = readdir($folder4) ) {

                    if (substr($file4,0,strpos($file4,'.')) == substr($file,0,strpos($file,'.'))){

                        $related = $file4;

                    }

                }


while( $file3 = readdir($folder3) ) {



if (substr($file3,0,strpos($file3,'.')) == substr($file,0,strpos($file,'.'))){



                        $txtname = $file3;



                        $fh = fopen("/home3/socialb8/public_html/mysite.info/player/txt/$txtname", 'r');

                        $theData = fread($fh, filesize("/home3/socialb8/public_html/mysite.info/player/txt/$txtname"));

                        fclose($fh);



                    }



                }

                closedir($folder2);

                closedir($folder3);
                closedir($folder4);

            $result="{\nlevels: [\n{ file: \"$path2[0]$file\" }\n],\nimage: \"$path2[1]$imagename\",\ntitle: \"$file\",\ndescription: \"$theData\",\n 'related.file':'$path2[3]$related'\n},\n";

            fwrite($inF,$result);

           }

    }

    fwrite($inF,"");

    closedir($folder);



fclose($inF);
4

1 に答える 1

1

ディレクトリを循環して、それらの各ディレクトリに配列にリストされているディレクトリのいずれかが含まれているかどうかを確認する必要がある場合は、次の$pathようなものを使用できます。

function readDirs()
{
    $path=array('images','etc...');
    $dirHandle = opendir('./');
    while($file = readdir($dirHandle))
    {
        if(is_dir($file) && $file != '.' && $file != '..')
        {
            $dirHandle2 = opendir($file);
            while($file2 = readdir($dirHandle2))
            {
                if(in_array($file2,$path))
                {
                    // do what you need to do
                }
            }
        }
    }
}
readDirs();

これにより、ルート フォルダー内のすべてのディレクトリが循環し、配列にリストされているディレクトリが含まれているかどうかが確認されます。含まれている場合は、ステートメント$pathにコードを挿入できます。// do what you need to do

それが役立つことを願っています!

于 2012-08-21T18:08:09.263 に答える