obtenez toutes les images d'un dossier en php

j'utilise WordPress. J'ai un dossier image comme mytheme/images/myimages .

je veux récupérer toutes les images du nom du dossier myimages

s'il vous Plaît me conseiller, comment puis-je obtenir les images de nom.

25
demandé sur likeitlikeit 2013-06-15 13:39:34

9 réponses

essayez cette

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

foreach($images as $image)
{
  echo $image;
}
68
répondu sharif2008 2018-06-15 09:34:15

vous pouvez le faire simplement avec la fonction PHP opendir .

exemple:

$handle = opendir(dirname(realpath(__FILE__)).'/pictures/');
while($file = readdir($handle)){
  if($file !== '.' && $file !== '..'){
    echo '<img src="pictures/'.$file.'" border="0" />';
  }
}
13
répondu zur4ik 2018-06-04 06:44:37
$dir = "mytheme/images/myimages";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}
$images=preg_grep ('/\.jpg$/i', $files);

très rapide car vous ne scannez que le répertoire nécessaire.

4
répondu Lorenz 2013-06-15 09:50:27

vérifier s'il existe, mettre tous les fichiers dans array, preg grep tous les fichiers JPG, echo new array pour toutes les images pourrait essayer ceci:

$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);
}
2
répondu Site Baker 2016-06-23 23:37:57

cette réponse est spécifique pour 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

Voici d'autres paramètres qui vous donneront des images d'autres lieux que le thème de l'enfant. Il suffit de remplacer les 2 premières lignes du code ci-dessus par la version dont vous avez besoin:

de Uploads directory:

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

De Parent-Thème

// 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() );

De L'Enfant-Thème

// 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() );
2
répondu Philipp 2016-08-18 19:44:44

quand vous voulez obtenir toute l'image à partir du dossier, puis utiliser glob() fonction intégrée qui aide à obtenir toute l'image . Mais quand vous les obtenez tous alors parfois besoin de vérifier que tout est valide dans ce cas, ce code vous aider. ce code vérifiera également qu'il s'agit de l'image

  $all_files = glob("mytheme/images/myimages/*.*");
  for ($i=0; $i<count($all_files); $i++)
    {
      $image_name = $all_files[$i];
      $supported_format = array('gif','jpg','jpeg','png');
      $ext = strtolower(pathinfo($image_name, PATHINFO_EXTENSION));
      if (in_array($ext, $supported_format))
          {
            echo '<img src="'.$image_name .'" alt="'.$image_name.'" />'."<br /><br />";
          } else {
              continue;
          }
    }

pour plus d'information

Manuel PHP

2
répondu Shafiqul Islam 2018-06-04 06:45:03

Voici mon code

$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;
    }
}
1
répondu Ajay Kumar 2016-08-03 15:00:03
//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
répondu alex 2018-03-08 16:36:01

vous pouvez simplement afficher votre répertoire image actuel(moins sûr). Par seulement 2 lignes de code.

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

echo"<a href=".$dir.">Photo Directory</a>";
-1
répondu Ajmal Tk 2017-10-20 05:16:05