0

以下を使用して、「html/」およびリンクパスにファイルのリストを作成しています。

配列を表示すると、たとえば my_file_name.php が表示されます

配列に拡張子ではなくファイル名のみが表示されるようにするにはどうすればよいですか?

$path = array("./html/","./link/");
$path2=  array("http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/html/","http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/link/");
$start="";
$Fnm = "./html.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]);
            $imagename ='';
            while( $file2 = readdir($folder2) ) {
                if (substr($file2,0,strpos($file2,'.')) == substr($file,0,strpos($file,'.'))){
                    $imagename = $file2;
                }
            }
            closedir($folder2);
        $result="<li class=\"ui-state-default ui-corner-top ui-tabs-selected ui-state-active\">\n<a href=\"$file\">\n$file2\n</a><span class=\"glow\"><br></span>
</li>\n";
        fwrite($inF,$result);
       }
}
fwrite($inF,"");
closedir($folder);

fclose($inF);
4

1 に答える 1

0

pathinfo()は良いですが、この場合は で済むと思いますstrrpos()。で何をしようとしているのかわかりませんが$imagename、それはあなたに任せます。ベースファイル名だけを比較するためにコードでできることは次のとおりです。

// ...
$folder = opendir($path[0]);
while( $file = readdir($folder) ) {
       if (($file != '.')&&($file != '..')&&($file != 'index.htm')) {
            $folder2 = opendir($path[1]);
            $imagename ='';
            $fileBaseName = substr($file,0,strrpos($file,'.'));
            while( $file2 = readdir($folder2) ) {
                $file2BaseName = substr($file2,0,strrpos($file2,'.'));
                if ($file2BaseName == $fileBaseName){
                    $imagename = $file2;
                }
            }
            closedir($folder2);
        $result="<li class=\"ui-state-default ui-corner-top ui-tabs-selected ui-state-active\">\n<a href=\"$file\">\n$file2\n</a><span class=\"glow\"><br></span>
</li>\n";
        fwrite($inF,$result);
       }
}

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

于 2012-08-27T20:29:47.633 に答える