2012-08-10 8 views
25

指定したディレクトリからイメージを表示するにはどうすればよいですか?私はディレクトリからすべてのpng画像を表示したいのですが、私の場合、ディレクトリはmedia/images/iconizedです。指定したディレクトリからすべてのイメージを引き出して表示する

私は周りを見てみましたが、私が本当に必要なものに合っていないようです。

しかし、ここで私の試しです。

$dirname = "media/images/iconized/"; 
$images = scandir($dirname); 
$ignore = Array(".", ".."); 
foreach($images as $curimg){ 
if(!in_array($curimg, $ignore)) { 
echo "<img src='media/images/iconized/$curimg' /><br>\n"; 
}; 
} 

ここで誰かが助けてくれることを願っています。私は任意のアイデア、推奨事項や提案に開いて、ありがとう。

+0

試用版では動作しません。あなたは、あなたが持っている問題についてより多くの情報を提供する必要があります。 – webnoob

答えて

60

また、このためglobを使用することができます。

$dirname = "media/images/iconized/"; 
$images = glob($dirname."*.png"); 

foreach($images as $image) { 
    echo '<img src="'.$image.'" /><br />'; 
} 
+0

どうやってpngの代わりに複数の画像を拡張しても、私はJPEGやGIF、または私が望むものを考えたいと思っています。 –

+2

このglobのように書くことができます( "{$ dirname} * .png、{$ dirname} * .jpeg、{$ dirname} * .. gif") –

+1

@MightyLuceneコメントにあなたが示唆していることは機能していません。 GLOB_BRACE - {a、b、c}を次のように展開します:GLOB_BRACE - {a、b、c}を次のように展開します。 – Segmentation

13

あなたは、単純なPHPスクリプトを使用してフォルダからすべての画像を表示することができます。フォルダー名 "images"とし、このフォルダーに画像を入れ、エディターでこのコードを貼り付けてこのスクリプトを実行します。 あなたは画像の種類は、あなたがfor ($i=0; $i<count($files); $i++)for ($i=1; $i<count($files); $i++)からループを変更する必要が

<?php 
$files = glob("images/*.*"); 
for ($i = 0; $i < count($files); $i++) { 
    $image = $files[$i]; 
    echo basename($image) . "<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />"; 
    echo '<img src="' . $image . '" alt="Random image" />' . "<br /><br />"; 

} 
?> 
+0

このコードでは、画像フォルダ内のすべてのファイルが実際に画像であると仮定していると思います。テキストファイルが間違ってそこにある場合、それは同様に表示されます。 –

+1

forループで1から始めるのはなぜですか?初めて忘れられたファイルではないのですか? – Lobato

+0

私はループを使用するので、0または1から始めることができます。また、count(配列)も使用するので、ループはすべての画像をフォルダから継続します。 –

3

このコードを使用してチェックしていない場合、これはPHPコード

<?php 
    $files = glob("images/*.*"); 
    for ($i=0; $i<count($files); $i++) 
     { 
     $image = $files[$i]; 
     $supported_file = array(
       'gif', 
       'jpg', 
       'jpeg', 
       'png' 
     ); 

     $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION)); 
     if (in_array($ext, $supported_file)) { 
      echo basename($image)."<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />"; 
      echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />"; 
      } else { 
       continue; 
      } 
      } 
     ?> 

です:だから正しいコードがある

<?php 
$files = glob("images/*.*"); 

for ($i=0; $i<count($files); $i++) { 
    $image = $files[$i]; 
    print $image ."<br />"; 
    echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />"; 
} 

?> 
2

anyo neは再帰的に探しています。

<?php 

echo scanDirectoryImages("images"); 

/** 
* Recursively search through directory for images and display them 
* 
* @param array $exts 
* @param string $directory 
* @return string 
*/ 
function scanDirectoryImages($directory, array $exts = array('jpeg', 'jpg', 'gif', 'png')) 
{ 
    if (substr($directory, -1) == '/') { 
     $directory = substr($directory, 0, -1); 
    } 
    $html = ''; 
    if (
     is_readable($directory) 
     && (file_exists($directory) || is_dir($directory)) 
    ) { 
     $directoryList = opendir($directory); 
     while($file = readdir($directoryList)) { 
      if ($file != '.' && $file != '..') { 
       $path = $directory . '/' . $file; 
       if (is_readable($path)) { 
        if (is_dir($path)) { 
         return scanDirectoryImages($path, $exts); 
        } 
        if (
         is_file($path) 
         && in_array(end(explode('.', end(explode('/', $path)))), $exts) 
        ) { 
         $html .= '<a href="' . $path . '"><img src="' . $path 
          . '" style="max-height:100px;max-width:100px" /></a>'; 
        } 
       } 
      } 
     } 
     closedir($directoryList); 
    } 
    return $html; 
} 
+0

厳密な基準:参照のみで変数を渡す必要があります。 :&& in_array(end(explode( '。'、end(explode( '/'、$ path))))、$ exts)の部分です。 – Lobato

-1

厳しい基準:変数のみがライン上/home/aadarshi/public_html/----------/upload/view.phpに参照によって渡されるべき32

コードは

<?php 

echo scanDirectoryImages("uploads"); 

/** 
* Recursively search through directory for images and display them 
* 
* @param array $exts 
* @param string $directory 
* @return string 
*/ 
function scanDirectoryImages($directory, array $exts = array('jpeg', 'jpg', 'gif', 'png')) 
{ 
if (substr($directory, -1) == '/') { 
    $directory = substr($directory, 0, -1); 
} 
$html = ''; 
if (
    is_readable($directory) 
    && (file_exists($directory) || is_dir($directory)) 
) { 
    $directoryList = opendir($directory); 
    while($file = readdir($directoryList)) { 
     if ($file != '.' && $file != '..') { 
      $path = $directory . '/' . $file; 
      if (is_readable($path)) { 
       if (is_dir($path)) { 
        return scanDirectoryImages($path, $exts); 
       } 
       if (
        is_file($path) 
        && in_array(end(explode('.', end(explode('/', $path)))), $exts) 
       ) { 
        $html .= '<a href="' . $path . '"><img src="' . $path 
         . '" style="max-height:100px;max-width:100px" /> </a>'; 
       } 
      } 
     } 
    } 
    closedir($directoryList); 
} 
return $html; 
} 
+0

あなたの答えにいくつかの説明を追加してください。さもなければ、それは削除されるかもしれません。また、あなたの書式を修正してください。 – user1438038

+0

コードで変更した内容を説明してエラーを起こさないようにしてください。 – KondukterCRO

関連する問題