【问题标题】:PHP: Pull all images from a specified directory using relative image pathPHP:使用相对图像路径从指定目录中提取所有图像
【发布时间】:2017-12-08 22:16:37
【问题描述】:

我正在尝试创建一个从图像目录中自动提取图像的画廊。

当我 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 设置为此

$dirname = "/assets/images/"; 

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

我在其中创建的文件位于public_html 文件夹之外,我相信这可能是问题的根源,但文件无法重新定位。

【问题讨论】:

    标签: php path directory gallery root


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用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>';
           }
      }
      

      希望这会有所帮助。如果没有,请告诉我,以便我更改答案。但我认为应该没问题,据我了解你在尝试什么。

      【讨论】:

      • 我添加了您建议的代码,但是我收到以下错误但没有返回结果:警告:scandir(/assets/images/):无法打开目录:/home/ 中没有此类文件或目录dev/target-pages/themes/gallery.php 第 27 行
      • 好的,停止。我不明白你在做什么。你能告诉我们你的文件结构吗?顺便提一句。我刚刚用一些随机图像在我的实时服务器上测试了代码,它运行良好。所以你唯一的问题是你没有把脚本放在正确的地方/我没有放在正确的路径 - 我不能,因为我不知道你的文件结构。只需给我一个图像文件夹的完整路径和脚本的完整路径。所以我可以调整我的代码。
      猜你喜欢
      • 2012-02-07
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 2011-05-12
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多