PHP在html错误中遍历文件夹和回显图像

PHP在html错误中遍历文件夹和回显图像,php,foreach,Php,Foreach,我就是不能让它工作这里怎么了 $files = scandir('gallery/'); if ($files !== false) { foreach($files as $f) { if ($f == '..' || $f == '.') continue; echo '<li><img src="gallery/'.$f.'" alt="'.$f.'" title=""></li>'.

我就是不能让它工作这里怎么了

 $files = scandir('gallery/');
 if ($files !== false) 
 {
    foreach($files as $f) {
      if ($f == '..' || $f == '.')
          continue;     
      echo '<li><img src="gallery/'.$f.'" alt="'.$f.'" title=""></li>'."\n";
    }
 } 
$files=scandir('gallery/');
如果($files!==false)
{
foreach($f文件){
如果($f='..'| |$f='.)
继续;
回音“
  • ”。“\n”; } }
    该文件夹位于名为“gallery”的我的根文件夹中。图片在里面

    我总是会遇到这样的错误:

    警告:为第101行“MYDOCUMENT.PHP”中的foreach()提供的参数无效

    将foreach更改为:

     foreach((array)$files as $f)
    
    代码可以是:

     $files = scandir('gallery/');
     if ($files !== false) 
     {
        foreach((array)$files as $f) {
          if ($f == '..' || $f == '.')
              continue;     
          echo '<li><img src="gallery/'.$f.'" alt="'.$f.'" title=""></li>'."\n";
        }
     } 
    
    $files=scandir('gallery/');
    如果($files!==false)
    {
    foreach((数组)$文件作为$f){
    如果($f='..'| |$f='.)
    继续;
    回音“
  • ”。“\n”; } }
    将foreach更改为:

     foreach((array)$files as $f)
    
    代码可以是:

     $files = scandir('gallery/');
     if ($files !== false) 
     {
        foreach((array)$files as $f) {
          if ($f == '..' || $f == '.')
              continue;     
          echo '<li><img src="gallery/'.$f.'" alt="'.$f.'" title=""></li>'."\n";
        }
     } 
    
    $files=scandir('gallery/');
    如果($files!==false)
    {
    foreach((数组)$文件作为$f){
    如果($f='..'| |$f='.)
    继续;
    回音“
  • ”。“\n”; } }
    您不应使用以下方法验证阵列:

    if ($files !== false) 
    
    但通过这样做:

    if (is_array($files) && count($files) > 0) {
    
    否则你会收到这样的警告

    [编辑] 一个家伙说,考虑使用GLUB。 这将与该功能一起工作

    例如:

    if (is_array($files) && count($files) > 0) {
       foreach(glob('gallery/*.{jpeg,gif,png}', GLOB_BRACE)) {
          // code here
       }
    }
    

    您不应使用以下方法验证阵列:

    if ($files !== false) 
    
    但通过这样做:

    if (is_array($files) && count($files) > 0) {
    
    否则你会收到这样的警告

    [编辑] 一个家伙说,考虑使用GLUB。 这将与该功能一起工作

    例如:

    if (is_array($files) && count($files) > 0) {
       foreach(glob('gallery/*.{jpeg,gif,png}', GLOB_BRACE)) {
          // code here
       }
    }
    
    这对我来说很有效…:

    <?php
        $files = scandir('gallery/');
        if ($files !== false) {
            foreach($files as $f) {
                if ($f == '..' || $f == '.') continue;
                echo $f . "<br>\n";
            }
        }
    ?>
    
    
    
    这和你的代码完全一样。。。所以请检查“gallery/”目录内容…

    这对我来说很有效…:

    <?php
        $files = scandir('gallery/');
        if ($files !== false) {
            foreach($files as $f) {
                if ($f == '..' || $f == '.') continue;
                echo $f . "<br>\n";
            }
        }
    ?>
    
    <?php
    $files = scandir('gallery/');
    if ($files !== false) 
    {
        foreach(is_array($files) as $f) {
        if ($f == '..' || $f == '.')
    ?>
        <li><img src="<?php echo 'gallery/'.$f ?>" alt="<?php echo $f ?>" title="">
    <?php
       }
    } 
    ?>
    
    
    
    这和你的代码完全一样。。。因此,请检查“gallery/”目录内容…

    
    
    <?php
    $files = scandir('gallery/');
    if ($files !== false) 
    {
        foreach(is_array($files) as $f) {
        if ($f == '..' || $f == '.')
    ?>
        <li><img src="<?php echo 'gallery/'.$f ?>" alt="<?php echo $f ?>" title="">
    <?php
       }
    } 
    ?>
    
  • “alt=”“title=”“>
  • 
    
  • “alt=”“title=”“>

  • var\u dump($files)的输出是什么?你能说得更具体些吗,我该怎么办?我是php新手……就在
    $files=scandir('gallery/')下面的一行放置
    变量转储($files);模具()
    并运行代码。请给出输出。您可能需要考虑使用<代码> GULL()> <代码>。代码>$files=glob('gallery/.{jpeg,gif,png}',glob_括号)检查
    is\u数组($files)
    和try
    foreach
    变量转储($files)的输出是什么?你能说得更具体些吗,我该怎么办?我是php新手……就在
    $files=scandir('gallery/')下面的一行放置
    变量转储($files);模具()
    并运行代码。请给出输出。您可能需要考虑使用<代码> GULL()> <代码>。代码>$files=glob('gallery/.{jpeg,gif,png}',glob_括号)检查
    是数组($files)
    并且try
    foreach
    没有更改任何内容没有更改任何内容确定这会回显图像的名称。如何回显图像本身?好的…您的代码打印正确引用图像标记的html。。。因此,您应该检查web服务器用户是否可以读取图像…嗯,它们应该是可读的,为什么不应该?就像我说的,代码打印图像的名称,但不显示图像逻辑是:PHP代码使用图像的名称打印HTML。浏览器(例如,Firefox、Chrome等)用于交互HTML从服务器检索图像并显示它们…我在变量前缺少一个“/”。。我的错。它现在可以用了,非常感谢你,这与图片的名称相呼应。如何回显图像本身?好的…您的代码打印正确引用图像标记的html。。。因此,您应该检查web服务器用户是否可以读取图像…嗯,它们应该是可读的,为什么不应该?就像我说的,代码打印图像的名称,但不显示图像逻辑是:PHP代码使用图像的名称打印HTML。浏览器(例如,Firefox、Chrome等)用于交互HTML从服务器检索图像并显示它们…我在变量前缺少一个“/”。。我的错。它现在可以用了非常感谢你它是怎么工作的?如果
    $files
    是数组,函数将返回
    true
    ,否则返回
    false
    。如何用循环迭代布尔值?它是如何工作的?如果
    $files
    是数组,函数将返回
    true
    ,否则返回
    false
    。如何用循环迭代布尔值?