2

ディレクトリ内のpdfファイルのみを読み取り、次にすべてのファイルのファイル名を読み取る必要があります。次に、ファイル名を使用していくつかのtxtファイルの名前を変更します。eregi関数だけを使ってみました。しかし、それは私が必要とするすべてを読むことができないようです。それらをよく読む方法は?これが私のコードです:

$savePath   ='D:/dir/';
$dir       = opendir($savePath);
$filename  = array();

while ($filename = readdir($dir)) {
if (eregi("\.pdf",$filename)){
    $read = strtok ($filename,"."); //get the filenames

//to rename some txt files using the filenames that I get before
//$testfile is text files that I've read before
    $testfile = "$read.txt";
    $file = fopen($testfile,"r") or die ('cannot open file');

    if (filesize($testfile)==0){} 
    else{
        $text = fread($file,55024);
        fclose($file);
        echo "</br>"; echo "</br>";         
    }
}
4

2 に答える 2

4

よりエレガント:

foreach (glob("D:/dir/*.pdf") as $filename) {
    // do something with $filename
}

ファイル名のみを取得するには:

foreach (glob("D:/dir/*.pdf") as $filename) {
    $filename = basename($filename);
    // do something with $filename
}
于 2012-07-24T05:48:38.537 に答える
1

これは、フィルターファイルタイプによって実行できます。以下はサンプルコードです。

<?php 

// directory path can be either absolute or relative 
$dirPath = '.'; 

// open the specified directory and check if it's opened successfully 
if ($handle = opendir($dirPath)) { 

   // keep reading the directory entries 'til the end 
   $i=0; 
   while (false !== ($file = readdir($handle))) { 
   $i++; 

      // just skip the reference to current and parent directory 
      if (eregi("\.jpg",$file) || eregi("\.gif",$file) || eregi("\.png",$file)){ 
         if (is_dir("$dirPath/$file")) { 
            // found a directory, do something with it? 
            echo " [$file]<br>"; 
         } else { 
            // found an ordinary file 
            echo $i."- $file<br>"; 
         } 
      } 
   } 

   // ALWAYS remember to close what you opened 
   closedir($handle); 
}  

?>

上記は、.PDFファイルでも同じことができる画像に関連するファイルタイプを示しています。

ここでよりよく説明されます

于 2012-07-24T05:44:32.757 に答える