2017-01-06 9 views
0

私は1つのフォルダにファイルのリストを表示するPHPページを作成しました。今、私はこのフォルダに直接アクセスしたくないので、index.phpにリダイレクトするPHPスクリプトを追加する予定です。このファイルがリストに表示されないようにするだけです例外を含むPHPリストファイル

このエクステンションに例外を追加することはできますか?それ以上のアイデアはありますか?

if ($handle = opendir('manual')) { 
    while (false !== ($entry = readdir($handle))) { 
      if ($entry != "." && $entry != "..") { 
       echo "<a href='manual/$entry' target='_blank'>$entry</><br>"; 
      } 
    } 
    closedir($handle); 
} 
+0

'.htaccess'ルールを' manual'フォルダ内に追加すると、そのディレクトリにアクセスできなくなりますが、上記のコード出力がすべて壊れます。この場合、 'manual/$ entry 'を参照する代わりに' foo.php?file = $ entry'のような別のファイルを呼び出してください。これはfoo.phpが '$ entry'の内容を取得する責任を負うものです。この全体的なことは本当にうんざりです。 –

答えて

1

あなたのindex.phpファイルがifステートメントを使用し、単純に、このリストに表示したくない場合。

if ($handle = opendir('manual')) { 
    while (false !== ($entry = readdir($handle))) { 
      if ($entry != "." && $entry != "..") { 
       if($entry!='index.php') // Go ahead only if the file is not index.php 
        echo "<a href='manual/$entry' target='_blank'>$entry</a><br>"; 
      } 
    } 
    closedir($handle); 
} 

そして、あなたはすべてのPHPファイルを非表示にする場合は、あなたがpreg_matchを使用することができます:いいえ持っている場合は、単純に、訪問者の状態を識別するためのフラグ変数を使用することができます

if ($handle = opendir('manual')) { 
    while (false !== ($entry = readdir($handle))) { 
      if ($entry != "." && $entry != "..") { 
       if (!preg_match('/.php/', $entry)) // Go ahead only if the file is not having .php as it's extension 
        echo "<a href='manual/$entry' target='_blank'>$entry</a><br>"; 
      } 
    } 
    closedir($handle); 
} 
+0

この作業は確実ですが、すべての.phpファイルが表示されないようにすることはできますか? –

+0

'preg_match()'を使うか、http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-phpを参照して拡張を取得して比較することができます。 – Barmar

+0

ええ、 'preg_match'を使うことができます。私はそれに応じて私の答えを編集しました。 – Nerazzurri

0

変数、彼はリダイレクトさせてください。通常、我々はグローバル変数を使用して作業を行います

関連する問題