PHP没有找到文件

时间:2013-06-19 15:57:35

标签: php wamp

我有一些代码:

<div id="image-cycle-container">
<ul id="image-cycle">
<?php 
    //Select the folder which the images are contained within and store as an array
    $imgDir = get_stylesheet_directory_uri() . '/img/image-cycle/'; 
    $images = glob($imgDir . '*.jpg');
    foreach($images as $image){
        echo 'something';
        echo "<li><img src='".$image."' /></li>\n";
    }    
?>
</ul>

问题是没有显示图像(尽管它们确实存在)。我可以绝对引用它们,但PHP没有找到任何东西/数组是空的。我使用WAMP开发网站,我开始怀疑这是否是我生命中的祸根......

1 个答案:

答案 0 :(得分:0)

根据评论,get_stylesheet_directory_uri()方法返回的路径为http://127.0.0.1/xxxx/wp-content/themes/responsive-child/

然后直接在PHP glob()函数中使用此路径。

简短的回答直接来自文档:

  

注意:此功能无法在remote files上运行,因为必须可以通过服务器的文件系统访问要检查的文件。

一个可能的解决方案,因为您知道当前域是什么,将从get_stylesheet_directory_uri()返回的路径中删除域名,并在完整路径中使用结果:

$domain = 'http://127.0.0.1/';

$imgDir = get_stylesheet_directory_uri() . '/img/image-cycle/'; 
$imgDir = substr($imgDir, strlen($domain)); // strip the domain

$images = glob($imgDir . '*.jpg');

这会带回一系列图像,您可以在当前进行迭代。但是,此列表将相对于脚本正在执行的当前目录,因为它们不会以/或域名为前缀。因此,我们可以将其添加回foreach循环:

foreach($images as $image) {
    $image = $domain . $image;
    // ...
}