【问题标题】:Can PHP echo the address of the DIRECTORY containing an image or file?PHP 可以回显包含图像或文件的 DIRECTORY 的地址吗?
【发布时间】:2013-03-20 01:21:27
【问题描述】:

我的问题的简短版本:有没有办法使用 PHP 来回显包含图像的目录的 URL?

长版:大家好,我正在开发一个简单的 CMS(使用 Kirby 以防万一),除了一件事之外,我几乎可以完成所有工作。 Kirby 是一个基于文件的 CMS,每个文件夹都是它自己的页面。我已将其设置为文件夹中的所有图像都会自动放置在页面上。这一切都很好,但问题是,我想在每个项目文件夹中都有一个子文件夹,其中包含更大版本的图像。我不想使用自动缩略图插件、灯箱或类似的东西。我想手动保存图像的两个版本。我设想过这样的事情:通过点击“缩略图”图像

website.com/projects/01-test/cat.jpg

可以打开更大的图片

website.com/projects/01-test/large/cat-large.jpg)

我希望我能以某种方式使用 PHP 来显示图像目录的完整 URL,而不是图像本身的名称。我最接近的是使用:

<?php echo $image->url(); ?>

但这给了http://website.com/projects/01-test/cat.jpg,而我只需要http://website.com/projects/01-test

如果我能以某种方式自动执行此操作,那么我想我可以执行以下操作:

<a href="<?php echo $image->MYSTERY(); ?>/large/<?php echo $image->name(); ?>-large.jpg">

好的,我希望这是有道理的。我正在学习 PHP,所以如果之前已经介绍过,我深表歉意——我已经尝试过到处搜索,但可能只是我不太知道要搜索什么。您能提供的任何帮助将不胜感激!

【问题讨论】:

    标签: php image directory kirby


    【解决方案1】:

    您可能正在查看dirname()

    <?php echo dirname($image->url()); ?>
    

    例如:

    echo dirname('http://example.org/path/to/picture.jpg');
    // http://example.org/path/to
    

    【讨论】:

    • 这正是我想要的。非常感谢大家!
    【解决方案2】:

    将您的 URL 分解为一个数组并删除最后一个元素。 using explode() - array_pop() - implode() 像这样:

    $arrayofurl = explode("/", $url);
    array_pop($arrayofurl);
    $final = implode("/",$arrayofurl);
    

    【讨论】:

      【解决方案3】:

      根据您的问题,我假设 $image-&gt;url(); 返回完整的图像 URL,$image-&gt;name(); 返回图像的名称(不带分机),对吧?

      所以我认为这应该可以解决问题,不是吗?

      $urlPath = str_replace($image->name() . '.jpg', '', $image->url());
      
      printf('<a href="%slarge/%s-large.jpg"><img src="%s"/></a>', $urlPath, $image->name(), $image->url());
      

      更新:忘记这个答案,只需使用dirname()

      只是为了好玩,下面是一个 JS 替代方案,它将遍历所有图像链接并设置 XL 图像路径:

      <!doctype html>
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      </head> 
      <body>
      <a href="#"><img src="test.jpg"/></a><hr>
      <a href="#"><img src="test2.jpg"/></a><hr>
      <a href="#"><img src="test3.jpg"/></a>
      <script>
          for(var a = document.getElementsByTagName("a"), b = 0;b < a.length;b++) {
            var c = a[b], d = new String(c.children[0].src), e = d.replace(/\\/g, "/").replace(/\/[^\/]*\/?$/, ""), f = d.replace(e, "");
            c.href = e + "/large" + f.replace(".jpg", "-large.jpg")
          }
          ;
      </script>
      </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-26
        • 1970-01-01
        相关资源
        最近更新 更多