通过PHP中的目录循环?

时间:2011-03-30 16:13:24

标签: php file loops

我正在尝试在html

中打印出来
 <a id='riverwalk' style='display:none;' href='images/riverwalk/1.jpg' rel='prettyPhoto[riverwalk]'></a>
<a style='display:none;' href='images/riverwalk/2.jpg' rel='prettyPhoto[riverwalk]'></a>
<a style='display:none;' href='images/riverwalk/3.jpg' rel='prettyPhoto[riverwalk]'></a>
<a style='display:none;' href='images/riverwalk/4.jpg' rel='prettyPhoto[riverwalk]'></a>

但我想以编程方式进行,这是我的代码......但是根本没有做任何事情

$counter = 0;
$directory = "images/riverwalk"
$dir = opendir ("images/riverwalk");
while (false !== ($file = readdir($dir))) {
        if ($counter == 0) {
            echo "<a id='riverwalk' style='display:none;' href='images/riverwalk/$file' rel='prettyPhoto[riverwalk]'></a>";
        $counter++;
        }else{
         echo "<a style='display:none;' href='images/riverwalk/$file' rel='prettyPhoto[riverwalk]'></a>";
    $counter++;
}
}

对任何人都有任何看法......我无法查看错误,因为我无法将错误转换为......任何想法

FIX:问题是第二行缺少分号

4 个答案:

答案 0 :(得分:2)

看看scandir() - 它更容易编写和调试..

$counter = 0;
$dirf    = 'images/riverwalk';
$dir = scandir($dirf);
foreach($dir as $file) {
   if(($file!='..') && ($file!='.')) {
      if($counter==0)
           echo "<a id='riverwalk' style='display:none;' href='images/riverwalk/$file' rel='prettyPhoto[riverwalk]'></a>";
      else
           echo "<a style='display:none;' href='images/riverwalk/$file' rel='prettyPhoto[riverwalk]'></a>";
      $counter++;
   }
}

如果这不起作用,请使用is_dir()检查您是否指向正确的目录..

答案 1 :(得分:1)

我希望我不要说太多:它确实有效,但你看不到任何东西,因为你的<a>是空的。尝试使用

    if ($counter == 0) {
        echo "<a id='riverwalk' style='display:none;' href='images/riverwalk/$file' rel='prettyPhoto[riverwalk]'> blib </a>";
    $counter++;
    }else{
     echo "<a style='display:none;' href='images/riverwalk/$file' rel='prettyPhoto[riverwalk]'> blub </a>";

(添加'blib'和'blub')

如果您确实想到了这一点(在这种情况下请在您的问题中提供html源代码),请在评论中告诉我,我将删除此答案。

答案 2 :(得分:1)

也许你在PHP代码的第2行错过了分号(; )...尝试添加;在线和。这段代码工作正常!

考虑这一行:

$directory = "images/riverwalk"

答案 3 :(得分:0)

$ dir ='./'; open_dir($ DIR);

function open_dir($ dir = null){     全球$ htaccesscount;

if (!empty($dir) && is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if ($file != "." && $file != "..") {
                $filetype = filetype($dir . $file);

                switch ($filetype) {
                    case 'dir'          :

                        break;
                    case 'file'         :

                        break;
                }
            }
        }
        closedir($dh);
    }
}

}