1
<?php
// open the current directory
$dhandle = opendir('.');
// define an array to hold the files
$files = array();

if ($dhandle) {
   // loop through all of the files
   while (false !== ($fname = readdir($dhandle))) {

      if (($fname != 'other') && ($fname != 'dd') && ($fname != 'index.htm') && ($fname != 'torcache.php')&& ($fname != 'error_log') && 
          ($fname != basename($_SERVER['PHP_SELF']))) {
          // store the filename
          $files[] = (is_dir( "./$fname" )) ? "(Dir) {$fname}" : $fname;
      }
   }
   // close the directory
   closedir($dhandle);
}

私がやりたいのは、ファイルが「other」または「dd」で始まる場合、それをループ$filesに含めないことです。!=でファイル名全体に名前を付ける以外に、これらのファイルを除外するにはどうすればよいですか?

4

1 に答える 1

4

これを小切手に追加します。

(substr($fname, 0, 5) != 'other') && (substr($fname, 0, 2) != 'dd')

PHPsubstrを参照してください。0文字列を受け取り、指定された最初の数値(文字列の開始を意味する)から始まり、2番目の数値(5「その他」および2「dd」の場合)で指定された長さの部分文字列を返します。

したがって、完全なステートメントは次のようになります。

if (
    (substr($fname, 0, 5) != 'other') &&
    (substr($fname, 0, 2) != 'dd') &&
    ($fname != 'index.htm') &&
    ($fname != 'torcache.php') &&
    ($fname != 'error_log') &&
    ($fname != basename($_SERVER['PHP_SELF']))
) { ... }
于 2012-06-15T18:36:32.033 に答える