【问题标题】:Using glob on a directory above current?在当前目录上使用 glob?
【发布时间】:2012-05-02 16:37:09
【问题描述】:

目前我有一个脚本正在运行,以基于以“154x154.jpg”结尾的目录中抓取所有图像。基本上我正在做的是浏览一个画廊目录并寻找所有图像的缩略图,然后我将在网站主页上的滑动画廊中输出。

<?php
// loop through the images
$count = 0;
$images = array();

foreach (glob("../../uploads/2012/05/*154x154.jpg") as $filename) {
    $images[$count] = $filename;    
    $count++;
}
for ($i = 0; $i < 7; $i++) {
    $random = mt_rand(1, $count - 1);
    echo '<li><a class="gal_img" href="#">';    
    echo '<span class="roll"></span>';
    echo '<img class="image" src="'.$images[$random].'" height="154" width="154" alt="" />';
    echo '</a></li>';
}

?>

这工作得很好,但我需要做的是能够从当前目录上方的目录中获取文件。具体来说:

图片文件夹:http://root/wp-content/uploads/2012/05/
主题文件夹:http://root/wp-content/themes/theme_folder/

** 编辑 **

现在一切都可以使用上面的代码,当我直接转到文件时,它执行得很好。但是在主题中使用它会生成除代码中的文件路径之外的所有内容。使用 wordpress 3.3.2

【问题讨论】:

    标签: php glob


    【解决方案1】:

    试试:

    foreach (glob("../images/*154x154.jpg") as $filename) {
    

    更新:

    当然,这是一个相对路径,仅当您需要包含的文件位于脚本当前工作目录的上一级时才有效。解决方案:使用绝对路径,即。一个以/ 开头的。另外,请记住,绝对路径是磁盘上的路径,而不是您网站的根文件夹。

    【讨论】:

    • 有效,我之前尝试的时候一定是拼错了。
    • @jetbeck86 你接受了这个答案,然后不接受它。它不再工作了吗?
    • 对不起,好吧,它确实可以,但我没有编辑过这个问题。不太确定如何编辑并且不将其标记为已回答。
    • @jetbeck86 我想我知道你的问题。您正在使用相对路径,并且您的脚本的当前工作目录会随着您浏览您的站点而改变。解决方案:使用绝对路径。我会更新我的答案。
    • 我想我可能会走另一条路,因为当我直接执行脚本时,相对路径实际上是有效的。我可以使用它来获取文件的路径,然后如何从每个路径中删除 ../../ ,然后在输出的 HTML 中添加直接文件路径。 IE。一旦我从 glob "../../uploads/2012/05/image_file.jpg" 获取所有图像路径,然后我只需要删除 ../../ 并将其替换为 website.com/wp-content 就必须弄清楚现在该怎么做:)
    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    相关资源
    最近更新 更多