2013-06-15 25 views

Trả lời

63

thử này

$directory = "mytheme/images/myimages"; 
$images = glob($directory . "*.jpg"); 

foreach($images as $image) 
{ 
    echo $image; 
} 
+0

thư mục My là thế này: '$ directory = "images [lớn]";' và nó không hoạt động – jscripter

+0

@Md. Hồi giáo Shariful là có một cách để liên kết các thư mục với một id từ cơ sở dữ liệu? –

+1

Tôi chỉ thêm để sử dụng dấu gạch chéo ngược cuối cùng/trong đường dẫn thư mục –

13

bạn có thể làm điều đó chỉ đơn giản với PHP opendir chức năng.

Dưới đây là một ví dụ:

$handle = opendir(dirname(realpath(__FILE__)).'/pictures/'); 
     while($file = readdir($handle)){ 
      if($file !== '.' && $file !== '..'){ 
       echo '<img src="pictures/'.$file.'" border="0" />'; 
      } 
     } 
3
$dir = "mytheme/images/myimages"; 
$dh = opendir($dir); 
while (false !== ($filename = readdir($dh))) { 
    $files[] = $filename; 
} 
$images=preg_grep ('/\.jpg$/i', $files); 

Rất nhanh vì bạn chỉ quét các thư mục cần thiết.

+0

Nhưng bây giờ không có kiểm tra nếu dir thực sự excists – Coolen

2

Kiểm tra nếu tồn tại, đưa tất cả các file trong mảng, preg grep tất cả các file JPG, echo mảng mới Đối với tất cả các hình ảnh có thể thử này:

$images=preg_grep('/\.(jpg|jpeg|png|gif)(?:[\?\#].*)?$/i', $files); 


if ($handle = opendir('/path/to/folder')) { 

    while (false !== ($entry = readdir($handle))) { 
     $files[] = $entry; 
    } 
    $images=preg_grep('/\.jpg$/i', $files); 

    foreach($images as $image) 
    { 
    echo $image; 
    } 
    closedir($handle); 
} 
+1

Bạn có thể xây dựng một chút về câu trả lời của bạn? – brodoll

+0

kiểm tra nếu tồn tại, đặt tất cả các file trong mảng, preg grep tất cả các file JPG, vang mảng mới Đối với tất cả các hình ảnh có thể thử này:. '$ images = preg_grep ('/\ (jpg | jpeg | png | gif) (?: [\? \ #]. *)? $/i ', $ files);' –

+0

vui lòng xóa trích dẫn bắt đầu. – Gogol

1

Dưới đây là một số mã của tôi

$dir   = '/Images'; 
$ImagesA = Get_ImagesToFolder($dir); 
print_r($ImagesA); 

function Get_ImagesToFolder($dir){ 
    $ImagesArray = []; 
    $file_display = [ 'jpg', 'jpeg', 'png', 'gif' ]; 

    if (file_exists($dir) == false) { 
     return ["Directory \'', $dir, '\' not found!"]; 
    } 
    else { 
     $dir_contents = scandir($dir); 
     foreach ($dir_contents as $file) { 
      $file_type = pathinfo($file, PATHINFO_EXTENSION); 
      if (in_array($file_type, $file_display) == true) { 
       $ImagesArray[] = $file; 
      } 
     } 
     return $ImagesArray; 
    } 
} 
2

này Câu trả lời là cụ thể dành cho WordPress:

$base_dir = trailingslashit(get_stylesheet_directory()); 
$base_url = trailingslashit(get_stylesheet_directory_uri()); 

$media_dir = $base_dir . 'yourfolder/images/'; 
$media_url = $hase_url . 'yourfolder/images/'; 

$image_paths = glob($media_dir . '*.jpg'); 
$image_names = array(); 
$image_urls = array(); 

foreach ($image_paths as $image) { 
    $image_names[] = str_replace($media_dir, '', $image); 
    $image_urls[] = str_replace($media_dir, $media_url, $image); 
} 

// --- You now have: 

// $image_paths ... list of absolute file paths 
// e.g. /path/to/wordpress/wp-content/uploads/yourfolder/images/sample.jpg 

// $image_urls ... list of absolute file URLs 
// e.g. http://example.com/wp-content/uploads/yourfolder/images/sample.jpg 

// $image_names ... list of filenames only 
// e.g. sample.jpg 

Dưới đây là một số oth er cài đặt sẽ cung cấp cho bạn hình ảnh từ những nơi khác hơn là chủ đề trẻ em. Chỉ cần thay thế 2 dòng đầu tiên trong đoạn mã trên với phiên bản bạn cần:

Từ thư mục Uploads:

// e.g. /path/to/wordpress/wp-content/uploads/yourfolder/images/sample.jpg 
$upload_path = wp_upload_dir(); 
$base_dir = trailingslashit($upload_path['basedir']); 
$base_url = trailingslashit($upload_path['baseurl']); 

Từ Phụ Huynh-Theme

// e.g. /path/to/wordpress/wp-content/themes/parent-theme/yourfolder/images/sample.jpg 
$base_dir = trailingslashit(get_template_directory()); 
$base_url = trailingslashit(get_template_directory_uri()); 

Từ Child-Theme

// e.g. /path/to/wordpress/wp-content/themes/child-theme/yourfolder/images/sample.jpg 
$base_dir = trailingslashit(get_stylesheet_directory()); 
$base_url = trailingslashit(get_stylesheet_directory_uri()); 
1

khi bạn muốn lấy tất cả hình ảnh từ thư mục, sau đó sử dụng hàm glob`() được xây dựng trong hàm giúp lấy tất cả hình ảnh. Nhưng khi bạn nhận được tất cả sau đó đôi khi cần phải kiểm tra xem tất cả là hợp lệ vì vậy trong trường hợp này mã này giúp bạn. mã này cũng sẽ kiểm tra xem nó là hình ảnh

để biết thêm thông tin

http://php.net/manual/en/function.glob.php

+0

Bạn nên thay đổi điều này: '$ i = 1;' đến '$ i = 0;' và nó hoạt động hoàn hảo! –

+0

@FlamurBeqiraj bạn nói đúng, hãy kiểm tra ngay –

0

Bạn chỉ có thể hiển thị thư mục hình ảnh thực tế của bạn (kém an toàn). Chỉ bằng 2 dòng mã.

$dir = base_url()."photos/"; 

echo"<a href=".$dir.">Photo Directory</a>"; 
0
//path to the directory to search/scan 
     $directory = ""; 
     //echo "$directory" 
     //get all files in a directory. If any specific extension needed just have to put the .extension 
     //$local = glob($directory . "*"); 
     $local = glob("" . $directory . "{*.jpg,*.gif,*.png}", GLOB_BRACE); 
     //print each file name 
     echo "<ul>"; 

     foreach($local as $item) 
     { 
     echo '<li><a href="'.$item.'">'.$item.'</a></li>'; 
     } 

     echo "</ul>"; 
+0

Bạn có thể giải thích mã của bạn không? – Michael