0

私はphp経由でディレクトリからすべての画像を取得して印刷しようとしてい< li < img src="url..ます...

SOについて少し調べたところ、グロブ関数がこの目的にうまく役立つことがわかりましたが、残念ながら機能しません。問題は、パスに ID をエコーし​​ようとしていることにあると思いますか? しかし、少し初心者なので、エラーが表示されないようです。

    <? 
        $dirname="images/companies/";  
        echo '$current['id']';
        $images = glob($dirname."*.jpg");

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

3 に答える 3

2

間に dir セパレーターがない$dirname."*.jpg"ため、スラッシュで終わらない限り$current['id']、glob は機能しません。

に置き換え$dirname."*.jpg"てみてください$dirname."/*.jpg"

また、あなた$dirnameは現在のPHP作業ディレクトリに相対的です。PHPがどこから呼び出されたかに関係なく、これが機能することを確認するには、次を使用します$dirname=dirname(__FILE__)."/images/companies/".$current['id']

于 2013-11-13T13:01:58.480 に答える
0
  1. $dirname が現在のパスに対して相対的であることを確認するか、絶対パスを使用してください。

    $dirname = $_SERVER['DOCUMENT_ROOT']."/../some/path/images/companies/";

  2. パスにスラッシュがないことを確認してください。$current['id'] の末尾にスラッシュがない場合は、次のように記述する必要があります。

    $images = glob($dirname."/*.jpg");

于 2013-11-13T13:05:59.177 に答える
-2

それは、コードを盗んだだけで、それが何をするのか理解していない場合の問題です。

ディレクトリをスキャンしたい場合は、scandir() を使用できます。これは、見つかったすべてのファイルを含む配列を返します。

$files = scandir("your/path/");

それらを表示するには、醜くフォーマットされていない print_r() を使用するだけですが、目的を果たします。さらに必要な場合は、echo と html/css を使用します。

echo "<pre>";
print_r($files);
echo "</pre>";

完成したコードはありません。自分で少し考えてください。

于 2013-11-13T13:03:39.313 に答える