我正在尝试创建一个动态图片库脚本,以便客户端在完成网站后,可以通过FTP上传图片,该网站将自动更新。我正在使用我在这里找到的脚本,但我不能让它为我的生活而工作。 PHP写入信息,但实际上永远不会写出它应该在目录中找到的图像。不知道为什么。演示here,你可以看到工作代码(没有PHP)here。
<?php
function getDirTree($dir,$p=true) {
$d = dir($dir);$x=array();
while (false !== ($r = $d->read())) {
if($r!="."&&$r!=".."&&(($p==false&&is_dir($dir.$r))||$p==true)) {
$x[$r] = (is_dir($dir.$r)?array():(is_file($dir.$r)?true:false));
}
}
foreach ($x as $key => $value) {
if (is_dir($dir.$key."/")) {
$x[$key] = getDirTree($dir.$key."/",$p);
}
}
ksort($x);
return $x;
}
$path = "../images/bettydew/";
$tree = getDirTree($path);
echo '<ul class="gallery">';
foreach($tree as $element => $eval) {
if (is_array($eval)) {
foreach($eval as $file => $value) {
if (strstr($file, "png")||strstr($file, "jpg")||strstr($file, "bmp")||strstr($file, "gif")) {
$item = $path.$file;
echo '<a href="javascript:void(0);"><img src="'.$item.'" alt="'.$item.'"/></a>';
}
}
}
}
echo '</ul>';
?>
答案 0 :(得分:0)
你的路径是错误的......当我向$ path变量提供错误的路径时,它会导致类似的错误。
或者您对该目录没有读取权限...也请检查权限
请记得检查&#39; /&#39;在路径的尽头没有它你的代码不能在子目录中进行递归搜索...
最后你的代码在写输出时不会给出子目录文件的正确文件路径...所以检查一下......
答案 1 :(得分:0)
路径问题和子目录中的递归问题。
也许试试这个:
<?php
$path = "./images/bettydew/";
$file_array = array ();
readThisDir ( $path, &$file_array );
echo '<ul class="gallery">';
foreach ( $file_array as $file )
{
if (strstr($file, "png")||strstr($file, "jpg")||strstr($file, "bmp")||strstr($file, "gif"))
{
list($width, $height) = getimagesize($file);
echo '<li><a href="javascript:void(0);"><img src="'.$file.'" width="'.$width.'" height="'.$height.'" alt="'.$file.'"/></a></li>';
}
}
echo '</ul>';
function readThisDir ( $path, $arr )
{
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
if (is_dir ( $path."/".$file ))
{
readThisDir ($path."/".$file, &$arr);
} else {
$arr[] = $path."/".$file;
}
}
}
closedir($handle);
}
}
?>