2012-01-11 4 views
2

以下は私が取り組んでいるファイルiterarotの作業です。すべての画像をフォルダに繰り返して収集し、各画像のファイルパスを$files arrayに保存し、後でコードに保存しますそのことを繰り返すには$files arrayPHP配列に1つ以上の項目を追加してそれを繰り返します

私が実際に作業しているコードは、imagemagickで3回(私は元のコードを書きませんでした)ファイルを感知するので、コード全体を改善しようとしています。これは2回までで、これが終了すると各画像に対して1回だけになります。

基本的に現在のコードでは、画像であるかどうかを確認するためにイメージ・マジックでイメージを実行しますが、後でそれを再度実行しますが、今回はイメージ・エクステンションを取得してから3回目は、画像をもう一度(私は人がコードを書くことがかなり狂っていることを知っています)

$files arrayは画像が初めてであることを確認するためにimagemagickで画像ファイルを実行すると1時間に短縮されます単純な真偽の代わりにファイル拡張子を返す関数です。したがって、ファイルパスが配列に保存されると、返されたファイル拡張子をその特定のファイルパスの配列に保存して、後でimagemagickを実行せずに後でアクセスできるようにしたいと考えています。

ここでは、すべての画像ファイルを取得してフォルダを徹底的に循環させて、それらをimagemagickに送信する機能があります。その後、私は、今、このような配列にアクセスし、誰かが関数の下のコードで

function find_recursive_images($path) 
{ 
    $directory = new RecursiveDirectoryIterator($path,RecursiveDirectoryIterator::SKIP_DOTS); 
    $iterator = new RecursiveIteratorIterator($directory,RecursiveIteratorIterator::LEAVES_ONLY); 
    $exntensions = array("png", "jpg", "jpeg", "gif", "bmp"); 

    foreach ($iterator as $fileinfo) { 
     if (in_array($fileinfo->getExtension(), $exntensions)) { 
      //This gets the filetype of the image from ImageMagick 
      $img = self::get_type($fileinfo->getPathname()); 
      if ($img) { 
       //This sets the full file path to the $files array 
       $files[] = $fileinfo->getPathname(); 

       // I tried something like this but not correct 
       $files[][] = $img; 
      } 
     } 
    } 
    return $files; 
} 

にそれにアクセスする方法を、この配列にファイルの拡張子を保存する方法私を見ることができ、配列にファイルパスを保存します...

foreach ($files as $file) 
{  
    // ie E:\Server\_ImageOptimize\img\testfiles\css3-please.png 
    $source_file = $file; 

    // $file also needs to return a filetype that is got when it ran thorugh imagemagick 

} 
+0

あなたはそれが通過した後、あなたが配列のように見えるしたいものの一例を示すことができるだろうループ? – jprofitt

+1

アイデンティティの危機はここにありますか? ;) – jprofitt

+0

@jprofittアカウントごとに問題に制限があります – CodeDevelopr

答えて

1

各画像に連想配列を使用することはどうですか?あなたの配列を作成するには :これを試して $files[] = array(location => $fileinfo->getPathname(), type => $img);

ループにあなたのARAYを通じて:

foreach ($files as $file) {  
    $source_file = $file->location; 
    $extension = $file->type; 

    //do some stuff using your info 
} 
+0

です。あなたができることは、あなたができることです: 'foreach($ array as $ key => $ val){ echo" key = " $キー。 "値="。 $ val; } ' – jere

+0

ahhはい、ありがとうございます、病気を2分で受け入れてくれます – CodeDevelopr