Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当php文件在不同文件夹中运行时,如何引用同一目录_Php_Foreach_Directory - Fatal编程技术网

当php文件在不同文件夹中运行时,如何引用同一目录

当php文件在不同文件夹中运行时,如何引用同一目录,php,foreach,directory,Php,Foreach,Directory,我当前的文件夹结构需要不同文件夹和文件夹级别中的php文件。我使用foreach抓取多个文件并在模板中显示它们。如果我知道foreach将根据使用它的php走向何方,它就可以正常工作。但是,一旦不同的php文件从不同的目录使用foreach,它就无法正确地找到它 目前: <?php foreach (glob("media/*.jpg") as $filename){ echo $filename; ?> 在查看媒体/图像之前,有没有办法让foreach.php引用相同的文件夹?如

我当前的文件夹结构需要不同文件夹和文件夹级别中的php文件。我使用foreach抓取多个文件并在模板中显示它们。如果我知道foreach将根据使用它的php走向何方,它就可以正常工作。但是,一旦不同的php文件从不同的目录使用foreach,它就无法正确地找到它

目前:

<?php
foreach (glob("media/*.jpg") as $filename){
echo $filename;
?>

在查看媒体/图像之前,有没有办法让foreach.php引用相同的文件夹?如果list1.php和list2.php使用foreach.php,它会工作吗?

绝对有效!您要查找的是一个链接,它是一个前缀为正斜杠的链接:

<?php
foreach (glob("/media/*.jpg") as $filename){
echo $filename;
?>

根相对超链接是相对超链接的子集,其中所有链接都假定从站点的根文件夹(域名)开始

上面的代码在根级别查找
媒体
文件夹中的任何文件。无论运行此代码的文件放置在何处,这都将起作用


希望这有帮助!:)

如果您遇到一些奇怪的相对路径问题。尝试创建与文件相关的路径

e、 g

或文档根目录(注意,这是一个文件路径):

或者定义您自己的公共基本路径,并使其成为相关的:

get_my_files_path() . '/media/*.jpg'
如果需要,可以将其定义为常量。或者作为代码中的可配置变量

从手册(ini包括路径)中:

include_path string指定目录列表,其中, include、fopen()、file()、readfile()和file_get_contents()函数 查找文件

不是地球仪


相对路径将与当前工作目录相对。

?您是指文档根相对路径吗。i、 e.带有文档根的前缀:
$\u服务器['document\u root']/media/*.jpg'
?实际上不需要使用
$\u SERVER['document\u root']
指定文档根目录,因为
glob()
与指定的模式匹配。模式开头的
/
本身说明它应该在文档根目录中查找。您是否尝试了您的代码?Glob将其读取为相对于系统根的绝对文件路径。除非Php被监禁。或者更确切地说,这是毫无意义的,如果我想在文档根目录之外遍历文件系统的一部分呢?据我所知,正斜杠在PHP中不起作用。PHP可以比html看得更远,因为它是由服务器运行的。在“list2.php”中测试时,它找不到根目录,并在不存在的“posts/”中查找“media/”。另一种方法是退出带有“../media”的文件,但这会破坏“list1.php”,我已经尝试了
\uuuuuuuuuuuuuuuu DIR\uuuuuuuuu
$\u SERVER['DOCUMENT\u ROOT']/media/*.jpg'
当从那里搜索时,我如何设置默认文件夹以查找和引用它?魔法常量
\uuuuuu DIR\uuuu
两边都有两个下划线,而不是三个。@Skaldsyn默认文件夹是什么意思?
__DIR__ . '/media/*.jpg'
$_SERVER['DOCUMENT_ROOT'] . '/media/*.jpg'
get_my_files_path() . '/media/*.jpg'