使用$pattern函数修改php代码以查找文件夹和子文件夹中的所有图像

使用$pattern函数修改php代码以查找文件夹和子文件夹中的所有图像,php,Php,嗯,我正在尝试编辑此代码,以包括所有子文件夹,问题是此代码只搜索到1个文件夹中的图像,它不会搜索到子文件夹中的图像 Header("content-type: application/x-javascript"); $pathstring=pathinfo($_SERVER['PHP_SELF']); $locationstring="http://" . $_SERVER['HTTP_HOST'].$pathstring['dirname'] . "/"; function returnim

嗯,我正在尝试编辑此代码,以包括所有子文件夹,问题是此代码只搜索到1个文件夹中的图像,它不会搜索到子文件夹中的图像

Header("content-type: application/x-javascript");
$pathstring=pathinfo($_SERVER['PHP_SELF']);
$locationstring="http://" . $_SERVER['HTTP_HOST'].$pathstring['dirname'] . "/";

function returnimages($dirname=".")
{
  $pattern="~\.(jpe?g|gif)$~";
  $files = array();
  if($handle = opendir($dirname))
  {
    while(false !== ($file = readdir($handle))){
        if(preg_match($pattern, $file)){
            $files[] = $file;
        }
    }

    closedir($handle);
  }

  // sort pics in reverse order
  rsort($files);

  // output images into javascript array
  foreach($files as $key => $pic)
  {
    echo "picsarray[$key] = '$pic';";
  }
}

echo 'var locationstring="' . $locationstring . '";';
echo 'var picsarray=new Array();';

returnimages();

想法是有人可以修改此代码,以便能够搜索包括子文件夹在内的所有图像。

我希望此方法对您有用:

Header("content-type: application/x-javascript");
$pathstring=pathinfo($_SERVER['PHP_SELF']);
$locationstring="http://" . $_SERVER['HTTP_HOST'].$pathstring['dirname'] . "/";

function returnimages($dirname=".")
{
  $pattern="~\.(jpe?g|gif)$~";
  $files = array();
  if($handle = opendir($dirname))
  {
    while(false !== ($file = readdir($handle))){
        if(preg_match($pattern, $file)){
            $files[] = $file;
        }
    }

    closedir($handle);
  }

  // sort pics in reverse order
  rsort($files);

  // output images into javascript array
  foreach($files as $key => $pic)
  {
    echo "picsarray[$key] = '$pic';";
  }
}

echo 'var locationstring="' . $locationstring . '";';
echo 'var picsarray=new Array();';

returnimages();
Header("content-type: application/x-javascript");
$pathstring=pathinfo($_SERVER['PHP_SELF']);
$locationstring="http://" . $_SERVER['HTTP_HOST'].$pathstring['dirname'] . "/";

function returnImages($dir = ".")
{
    $files = array_diff(scandir($dir), Array(".", ".."));
    $dir_array = Array();
    $images = array();
    $pattern="~\.(jpe?g|gif)$~";
    foreach ($files as $file) {
        $path = $dir . "/" . $file;
        if (is_dir($path)) {
            // This does the magic, if is a folder, we recursively seek for more images.
            $images = array_merge($images, returnImages($path));
        }
        else if (preg_match($pattern, $path)) {
            $images[] = $path;
        }
    }
    return $images;
}

function printSortedImages(array $images) {
    // sort pics in reverse order
    rsort($images);

    // output images into javascript array
    foreach($images as $key => $pic)
    {
        echo "picsarray[$key] = '$pic';";
    }
}

echo 'var locationstring="' . $locationstring . '";';
echo 'var picsarray=new Array();';

$images = returnImages();
printSortedImages($images);