PHP:使用相对图像路径从指定目录中提取所有图像

时间:2017-07-05 09:58:43

标签: php path directory gallery root

我正在尝试创建一个图库,从图像目录中自动拉出图像。

当我foreach()返回每个图像时,它会将整个根路径拉为图像src

/home/dev/public_html/assets/images/

这会导致图像无法显示并在屏幕上显示死链接图像。我需要这样的相对路径:

/assets/images/imagename.jpg

如何设置基本路径/网址?

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

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

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

我尝试将$dirname设置为此

$dirname = "/assets/images/"; 

但我没有得到任何结果,根本没有任何结果。

我正在创建此文件的文件位于public_html文件夹之外,我相信这可能会解决问题,但文件无法重新定位。

2 个答案:

答案 0 :(得分:2)

我会编辑循环以便从路径中删除不必要的字符串:

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

答案 1 :(得分:0)

您可以使用scandir() http://php.net/manual/en/function.scandir.php

有些想法:

编辑:稍微更改了代码,因此scandir只接受文件,否则放在数组中的前两个是父文件夹的文件夹。

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

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

希望这有帮助。如果没有,请告诉我,所以我可以改变我的答案。但我认为应该没问题,只要我明白你在尝试什么。