2017-07-05 3 views
2

画像ディレクトリから画像を自動的に取得するギャラリーを作成しようとしています。PHP:相対イメージパスを使用して、指定されたディレクトリからすべてのイメージを引き出します

私はそれを返すforeach()各画像はしかし、それは画像SRC

/home/dev/public_html/assets/images/

として全体のルートパスを引っ張るこれは表示しないように画像を引き起こし、画面上に死んでリンクされた画像を示しています。

/assets/images/imagename.jpg

はどのようにしてベースパス/ URLを設定します:私はこのような相対パスを必要としますか?

$dirname = "/home/dev/public_html/assets/images/";        

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

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

私はこの

$dirname = "/assets/images/"; 

から$dirnameを設定しようとしたしかし、私は何の結果を得るていないし、何もまったく通じ引っ張るん。

これを作成しているファイルは、public_htmlフォルダの外にありますが、これは問題の原因になる可能性がありますがファイルを再配置することはできません。

編集:

答えて

2

私はパスから不要な文字列を除去するために、ループを編集します: 警告::SCANDIR(/資産/

foreach($images as $image) { 
    $src = str_replace('/home/dev/public_html' ,'', $image) ; 
    echo '<img src="'.$src.'" /><br />'; 
} 
0

あなたのようなscandir()http://php.net/manual/en/function.scandir.php

Somethinkを利用することができる可能性ビットは、そうSCANDIRファイルのみを取るコード変更、そうでない場合は、アレイに配置された最初の二つは、親のフォルダがありますフォルダ。

$dir = "assets/images/"; 
$images = scandir($dir); 

foreach($images as $image) { 
    if($image != '.' && $image != '..') { 
      echo ' <img src="assets/images/'.$image.'"><br>'; 
    } 
} 

希望しました。そうでない場合は、私に知らせてください。私は私の答えを変えることができます。しかし、私はあなたがしようとしていることを理解する限り、それはうまくいくはずだと思います。

+0

私は、しかし、私はノー返された結果と、次のエラーを得た、あなたの提案のコードを追加しましたimages /):dirを開くことに失敗しました:/home/dev/target-pages/themes/gallery.phpの27行目にそのようなファイルやディレクトリがありません – Ben

+0

いいえ、停止します。私はあなたがやっていることを理解していません。ファイル構造を教えてください。 Btw。私はちょうどいくつかのランダムな画像で私のライブサーバー上のコードをテストし、それは完全に動作します。あなたの唯一の問題は、あなたが適切な場所にスクリプトを置いていないということです。私はあなたのファイル構造を知らないので、私は正しい経路に入れていません。画像フォルダへのフルパスとスクリプトへのフルパスを入力してください。だから私は自分のコードを適応させることができます。 – Twinfriends

関連する問題