0

拡張子が .png、.php、.html のファイルを PHP から非表示にする必要があります。

.htaccess は正常に動作します

IndexIgnore *.png
IndexIgnore *.php
IndexIgnore *.html

しかし、PHPを使用してファイルを非表示にしたい。

私はこのスクリプトを使用します:

<?php
    $myfolder = realpath(dirname(__FILE__));
    $handle = opendir("$myfolder");
    while($name = readdir($handle)) 
        echo "$name<br>";
    }
    closedir($handle);
?>

しかし、私はまだファイルを見ることができます。助けてくれるすべての人に感謝します。

4

3 に答える 3

3

正規表現を使用してそれを行う方法は次のとおりです

<?php
    // Regex with which to hide some file types
    $ignore_regex = '/(\.png|\.php|\.html)$/';

    $myfolder = realpath(dirname(__FILE__));
    $handle = opendir("$myfolder");
    while($name = readdir($handle)) {
        // Check if this name matches the ignore regex
        if(preg_match($ignore_regex, $name)) {
            continue;
        }
        echo "$name<br>";
    }
    closedir($handle);
?>
于 2012-08-10T21:38:03.563 に答える
2

PHP はファイル システムを直接読み取ります。Web サーバー経由でファイルを読み取ることはありません。したがって、.htaccess ファイルは無視されます。

ループ内でこれらのファイル タイプを手動で確認し、無視する必要があります。

于 2012-08-10T21:35:55.950 に答える
0

PHP には、パターンに一致するファイルを返すglobという関数があります。それはおそらくあなたが使用する必要があるものです。

以下のRocketによって指摘されているように、 glob パターンに関する非常に便利な短いチュートリアルがここにあります。

名前だけでも使う価値ありです:)

于 2012-08-10T21:42:48.507 に答える