2013-06-15 19 views

Odpowiedz

63

spróbować tej

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

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

Mój katalog to: '$ directory = "images [big]";' a to nie działa – jscripter

+0

@Md. Shariful Islam jest sposobem na powiązanie katalogu z identyfikatorem z bazy danych? –

+1

Dodałem tylko, aby użyć ostatniego ukośnika odwrotnego ukośnika/w ścieżce katalogu –

13

można to zrobić po prostu z PHP opendir funkcji.

Oto przykład:

$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); 

Bardzo szybko, bo tylko zeskanować potrzebne katalogu.

+0

Ale teraz nie ma czeku, jeśli reż. Rej. – Coolen

2

Sprawdź, czy istnieje, umieścić wszystkie pliki w tablicy preg grep wszystkie pliki JPG, echo nowa tablica dla wszystkich obrazów może próbować to:

$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

Czy mógłbyś nieco rozwinąć swoją odpowiedź? – brodoll

+0

sprawdzić, czy istnieje, umieścić wszystkie pliki w tablicy preg grep wszystkie pliki JPG, echo nowej tablicy Dla wszystkich obrazów mógł spróbować tego. '$ images = preg_grep ('/\ (jpg | jpeg | png | gif) (?: [\? \ #]. *)? $/i ', $ pliki);' –

+0

proszę usunąć początkową ofertę. – Gogol

1

Oto mój jakiś kod

$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

ten odpowiedź jest specyficzne dla WordPressa:

$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 

Oto niektóre oth er ustawienia, które dadzą ci obrazy z innych miejsc niż temat potomny. Wystarczy wymienić pierwsze 2 wiersze w powyższym kodzie w wersji trzeba:

z katalogu przesyłaniem:

// 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']); 

Od Parent-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()); 

Od 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

Jeśli chcesz uzyskać cały obraz z folderu, użyj funkcji glob`(), która pomaga uzyskać cały obraz. Ale kiedy już wszystko dostaniesz, musisz kiedyś sprawdzić, czy wszystko jest w porządku, więc w tym przypadku ten kod pomoże ci. Kod ten będzie również sprawdzić, że jest to obraz

więcej informacji

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

+0

Powinieneś zmienić to: '$ i = 1;' do '$ i = 0;' i działa idealnie! –

+0

@FlamurBeqiraj masz rację, sprawdź teraz –

0

można po prostu pokazać rzeczywisty katalog obrazu (mniej bezpieczne). Tylko 2 linie kodu.

$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

Czy możesz wyjaśnić swój kod? – Michael