【问题标题】:glob - set relative path root directoryglob - 设置相对路径根目录
【发布时间】:2023-03-05 23:48:01
【问题描述】:

我在 php 中的 glob 遇到了一些问题,虽然我做了一些研究,但我似乎无法找到我的问题的答案。

首先是我的目录结构:

/ (root)
 /images (folder)
       - gallery/ (sub folder containing image files)
 /pages (folder)
       - gallery.php

我想访问文件夹“images”中的子文件夹“gallery”。所以:在我的 gallery.php 文件中,我得到以下行:

$images = glob("/images/gallery/*.*");

这不起作用。

如果我将路径更改为“../

$images = glob("../images/gallery/*.*");

或者如果我将代码更改为:

define('BASE', $_SERVER['DOCUMENT_ROOT']);
$images = glob(BASE."/images/gallery/*.*");

不幸的是,源代码显示了一些我不确定我是否真的要公开的信息

e.g.    
/home/scecjwkh/htdocs/images/gallery/3.JPG

我希望我提供的信息足以真正理解我的问题。不知道为什么我在相对路径上遇到这么多麻烦 o.O

提前谢谢你, 斯图本

【问题讨论】:

  • 当您提供以斜杠 (/) 开头的路径时,它被视为来自您的媒体/磁盘根目录的绝对路径,而不是相对于应用程序根目录。顺便说一句,你想用glob 做什么?也许如果你解释一下,你可以提高你得到答案的机会。

标签: php path root relative-path glob


【解决方案1】:

您通常做的是使用__DIR__ 从当前脚本的文件夹构建相对路径。您还可以使用__DIR__ 来了解要从最终路径中删除的部分,因为您应该知道当前文件在项目中的哪个位置,从而知道根相对于它的位置。

$images = glob(__DIR__."/../images/gallery/*.*"); 获取图像列表而不关心current working dir,之后您可以使用realpath(__DIR__.'/..') 计算从每个文件路径中截取多少。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2017-03-24
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    相关资源
    最近更新 更多