PHP читает директорию и возвращает массив с путями ссылок на связанные изображения - PullRequest
1 голос
/ 04 ноября 2011

Я пытаюсь написать функцию, которая возвращает массив изображений для слайдера изображений jQuery.

И теперь я немного застрял в получении правильного логического кода. И я думаю, Мэйби, вся структура не так? Я могу найти правильный путь для 1 файла, но массив связанных файлов, похоже, не работает.

##info past to the function:
$id = '11101';
$dir = "myimgdir/";
$thumbs = 'TN';
$medium = 'M';

##the files in the dir are named like this:
11101x1xTN //thumbnail
11101x2xTN
11101x3xTN
11101x1xM //some img but in medium size
11101x2xM
11101x3xM

Итак:

$dir = "$dir$id/";      
$get_opts = array($thumbs, $medium);

// array to hold return value 
$retval = array();

   //full dir
   $fulldir = "{$_SERVER['DOCUMENT_ROOT']}/$dir"; 

$d = @dir($fulldir) or die("getImages: Failed opening directory $dir for reading"); 
while(false !== ($entry = $d->read())) {

  $fullpath = escapeshellarg("$fulldir$entry");
  $file_extension = end(explode('.', $fullpath));
  $file_name = basename($entry, $file_extension);   


 ####here I get stuck
    foreach ($get_opts as $get_opt) {           
        if (strpos($file_name, $get_opt)) { //so 11101x1xTN gontains TN
            $retval[] = array( 
                'TN'      => "/$dir$entry", 
                'TNsize'  => getimagesize("$fulldir$entry"),

                ####how to return the medium path as well (11101x1xM)
                'M'  => "/$dir", 
            );
        }           
    }



}

$d->close();    
return $retval;

1 Ответ

0 голосов
/ 04 ноября 2011

Это похоже на прекрасную возможность использовать PHPs glob() функцию .

<?php
$thumbs = glob('*TN*');
foreach ($thumbs as $filename) {
    $image_path = '/' . $dir . $filename;
    $medium_image_path = str_replace('TN', 'M', $image_path);
    if(!is_file($medium_image_path)) {
        $medium_image_path = '';
    }
    $retval[] = array( 
            'TN'      => $image_path,
            'TNsize'  => getimagesize($image_path),
            'M'  => $medium_image_path, 
        );
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...