我正试图通过这样做来加载文件夹中的所有图像:
<?php
$dirname = "/../../../properties-frontpage/";
$images = glob($dirname."*.*");
foreach($images as $image) {
echo '<div class="item" style="background-image:url(' . $image . ')" ></div>';
}
echo '<pre>';
var_dump($images);
echo '</pre>';
?>
然而,它返回一个空数组,它让我疯狂,我可能以错误的方式定义$dirname
,但无法弄清楚如何。
谢谢你们
编辑01
代码写在一个include中,该文件位于名为includes
的文件夹中
这是我的文件夹结构:
wp-content&gt;主题&gt; AWF&gt;包括
properties-frontpage
文件夹位于wp-content
文件夹中。
包含在front-page.php
主题文件夹中的AWF
中。
所以我需要走三个级别吗?
编辑02
感谢Stefan Gehrig的解决方案,我现在输出了这些网址:
/Users/boriskamp/Documents/Local Websites/MijnAWF/wp-content/themes/AWF/includes/../../../properties-frontpage/12.jpg
我怎样才能将它们变成
/Users/boriskamp/Documents/Local Websites/MijnAWF/wp-content/properties-frontpage/12.jpg
所以他们的工作是src
?
答案 0 :(得分:2)
必须相对于正在执行的脚本定义相对路径,而不是相对于包含的脚本。有时很难弄清楚,而且我没有WP专家。通常,在使用包含文件时,在已知绝对路径上旋转相对路径更容易。有一个__DIR__
常量始终指向当前文件所在的目录。
所以你可以做那样的事情
$dirname = __DIR__."/../../../properties-frontpage/";
这将解决类似
的问题/<<absolute path>>/wp-content/themes/AWF/includes/../../../properties-frontpage/
关于编辑02 :
可以使用realpath()
删除..
遍历(请阅读符号链接发生的文档以及目标路径不存在的情况)。但是通过Web服务器访问路径更加复杂。您不能简单地假设您只需要剥离/Users/boriskamp/Documents/Local Websites/
部分,使路径相对于文档根目录。根据您的服务器配置(例如别名或路径映射),此任务变得任意复杂,超出了原始问题的范围。也许有一个WP助手可以做到这一点 - 我不知道。
答案 1 :(得分:0)
请改用此代码:
<?php
$dirname = "../../../properties-frontpage/"; // Remove the first /
$images = glob($dirname."*.*");
foreach($images as $image) {
echo '<div class="item" style="background-image:url(' . $image . ')" ></div>';
}
echo '<pre>';
var_dump($images);
echo '</pre>';
?>