PHP readdir和sort

PHP readdir和sort,php,sorting,preg-replace,readdir,Php,Sorting,Preg Replace,Readdir,我正在做一个小画廊。我想从目录中读取文件名,并在去掉一些前导数字和文件扩展名后打印下面的文件名 我有两个版本的代码 版本1没有排序 $current_dir=“$DOCUMENT_ROOT”。/weddings2/”; $dir=opendir($current_dir);//打开吸盘 while($file=readdir($dir))//while循环 { $parts=explode(“.”,$file);//分离名称并按句点进行分解 如果(is_array($parts)&&count(

我正在做一个小画廊。我想从目录中读取文件名,并在去掉一些前导数字和文件扩展名后打印下面的文件名

我有两个版本的代码

版本1没有排序
$current_dir=“$DOCUMENT_ROOT”。/weddings2/”;
$dir=opendir($current_dir);//打开吸盘
while($file=readdir($dir))//while循环
{
$parts=explode(“.”,$file);//分离名称并按句点进行分解
如果(is_array($parts)&&count($parts)>1){//被解析的数组是否有多个部分
$extension=end($parts);//设置为我们可以看到最后一个文件扩展名
$bfile=substr($file,2);//去掉前两个字符
$cfile=preg_replace(“/\d/”),“$bfile);//删除数字
$cfile=preg_replace(“/”),“$cfile”;
$cfile=preg_replace(“/.jpg/”),“$cfile”;
如果($extension==“jpg”或$extension==“jpg”)//是扩展还是扩展?
echo“
$cfile\n”; } } closedir($dir);//完成后关闭目录

版本2进行排序,但我无法处理文件名
$current_dir=“$DOCUMENT_ROOT”。/weddings2/”;
$dir=opendir($current_dir);//打开吸盘
$files=array();
而($files[]=readdir($dir));
排序($文件);
closedir($dir);
foreach($files作为$file)
如果($file.“&&&$file.”&&&!preg_匹配(“/^hide/i”,$file))
$table_cell.=“
$cfile\n”; echo$table_单元;


是的,我知道我很笨。啊

编辑:您的代码缺少大括号

你有

foreach (...) code code foreach(…) 代码 代码 应该是这样

foreach (...) { code code } foreach(…){ 代码 代码 } 只需将代码放在foreach循环后的$parts和最后一个$cfile之间,只需在循环中添加大括号,就可以放入更多代码。还要注意的是,两个代码段中的if条件不同,您必须决定使用哪一个条件,或者是否将它们组合到一个条件中

$current_dir = "$DOCUMENT_ROOT"."/weddings2/";    

$dir = opendir($current_dir);        // Open the sucker

$files = array();
while ($files[] = readdir($dir));
sort($files);
closedir($dir);

foreach ($files as $file) {

      //MANIPULATE FILENAME HERE, YOU HAVE $file...

      if ($file <> "." && $file <> ".." && !preg_match("/^hide/i",$file))
      echo "<td><img src='".'weddings2/'. rawurlencode($file) ."'><br />$cfile</td>\n";
}
$current_dir=“$DOCUMENT_ROOT”。/weddings2/”;
$dir=opendir($current_dir);//打开吸盘
$files=array();
而($files[]=readdir($dir));
排序($文件);
closedir($dir);
foreach($files作为$file){
//在这里操纵文件名,您有$file。。。
如果($file.“&&&$file.”&&&!preg_匹配(“/^hide/i”,$file))
echo“
$cfile\n”; }
由于评论部分没有足够的空间

文科:我在这里编辑是为了让它更容易。你应该

 $current_dir = "$DOCUMENT_ROOT"."/weddings2/";    
 $dir = opendir($current_dir);        // Open the sucker
 $files = array();
 while ($files[] = readdir($dir));
 sort($files);
 closedir($dir);

 foreach ($files as $file)
 {

    $bfile= substr($file, 2); //strips the first two characters
    $cfile= preg_replace(('/\d/'),'&nbsp;',$bfile);
    $cfile= preg_replace(('/_/'),' ',$cfile);
    $cfile= preg_replace(('/.jpg/'),' ',$cfile);

    if ($file <> "." && $file <> ".." && !preg_match("/^hide/i",$file))

    // echo "<td><img src=\"weddings2/$file\"><br />$cfile</td>\n";
    //echo "<td><img src=\"weddings2/$file\"><br />$cfile</td>\n";

    $table_cell .= "<td><img src='".'weddings2/'. rawurlencode($file) ."'><br />$cfile</td>\n";
    //$table_cell .= "  <li><a href='" .'pdfs/'. rawurlencode($file) ."'>$file</a></li>\n";

    echo $table_cell;
}
$current_dir=“$DOCUMENT_ROOT”。/weddings2/”;
$dir=opendir($current_dir);//打开吸盘
$files=array();
而($files[]=readdir($dir));
排序($文件);
closedir($dir);
foreach($files作为$file)
{
$bfile=substr($file,2);//去掉前两个字符
$cfile=preg_replace(“/\d/”),“$bfile”;
$cfile=preg_replace(“/”),“$cfile”;
$cfile=preg_replace(“/.jpg/”),“$cfile”;
如果($file.“&&&$file.”&&&!preg_匹配(“/^hide/i”,$file))
//echo“
$cfile\n”; //echo“
$cfile\n”; $table_cell.=“
$cfile\n”; //$table_cell.=“
  • \n”; echo$table_单元; }
    而不是你所尝试的

    我试过这个:
    $current_dir=“$DOCUMENT_ROOT”。/weddings2/”;
    $dir=opendir($current_dir);//打开吸盘
    $files=array();
    而($files[]=readdir($dir));
    排序($文件);
    closedir($dir);
    foreach($files作为$file)
    $bfile=substr($file,2)//去掉前两个字符
    $cfile=preg_replace(“/\d/”),“$bfile”;
    $cfile=preg_replace(“/”),“$cfile”;
    $cfile=preg_replace(“/.jpg/”),“$cfile”;
    如果($file.“&&&$file.”&&&!preg_匹配(“/^hide/i”,$file))
    //echo“
    $cfile\n”; //echo“
    $cfile\n”; $table_cell.=“
    $cfile\n”; //$table_cell.=“
  • \n”; echo$table_单元;
    还有这个
    
    
    从此他们幸福地生活在一起
    与此相反:
    
    
    婚礼教堂
    新娘花 草坪上的新娘
    从此他们幸福地生活在一起
    谢谢Vinko的快速响应,但当我在您建议的位置插入文件操作时,我只得到最后一张图像,而不是所有图像。您是否对每个文件进行了回音?如果你只得到最后一张图片,那就是你只在最后一次写入屏幕,或者你正在覆盖一些变量,或者。。。(可能性无穷)
    $current_dir = "$DOCUMENT_ROOT"."/weddings2/";    
    
    $dir = opendir($current_dir);        // Open the sucker
    
    $files = array();
    while ($files[] = readdir($dir));
    sort($files);
    closedir($dir);
    
    foreach ($files as $file) {
    
          //MANIPULATE FILENAME HERE, YOU HAVE $file...
    
          if ($file <> "." && $file <> ".." && !preg_match("/^hide/i",$file))
          echo "<td><img src='".'weddings2/'. rawurlencode($file) ."'><br />$cfile</td>\n";
    }
    
     $current_dir = "$DOCUMENT_ROOT"."/weddings2/";    
     $dir = opendir($current_dir);        // Open the sucker
     $files = array();
     while ($files[] = readdir($dir));
     sort($files);
     closedir($dir);
    
     foreach ($files as $file)
     {
    
        $bfile= substr($file, 2); //strips the first two characters
        $cfile= preg_replace(('/\d/'),'&nbsp;',$bfile);
        $cfile= preg_replace(('/_/'),' ',$cfile);
        $cfile= preg_replace(('/.jpg/'),' ',$cfile);
    
        if ($file <> "." && $file <> ".." && !preg_match("/^hide/i",$file))
    
        // echo "<td><img src=\"weddings2/$file\"><br />$cfile</td>\n";
        //echo "<td><img src=\"weddings2/$file\"><br />$cfile</td>\n";
    
        $table_cell .= "<td><img src='".'weddings2/'. rawurlencode($file) ."'><br />$cfile</td>\n";
        //$table_cell .= "  <li><a href='" .'pdfs/'. rawurlencode($file) ."'>$file</a></li>\n";
    
        echo $table_cell;
    }
    
     $current_dir = "$DOCUMENT_ROOT"."/weddings2/";    
     $dir = opendir($current_dir);        // Open the sucker
     $files = array();
     while ($files[] = readdir($dir));
     sort($files);
     closedir($dir);
    
      foreach ($files as $file)
    
    
        $bfile= substr($file, 2); //strips the first two characters
        $cfile= preg_replace(('/\d/'),'&nbsp;',$bfile);
        $cfile= preg_replace(('/_/'),' ',$cfile);
        $cfile= preg_replace(('/.jpg/'),' ',$cfile);
    
          if ($file <> "." && $file <> ".." && !preg_match("/^hide/i",$file))
    
       // echo "<td><img src=\"weddings2/$file\"><br />$cfile</td>\n";
        //echo "<td><img src=\"weddings2/$file\"><br />$cfile</td>\n";
    
    $table_cell .= "<td><img src='".'weddings2/'. rawurlencode($file) ."'><br />$cfile</td>\n";
    //$table_cell .= "  <li><a href='" .'pdfs/'. rawurlencode($file) ."'>$file</a></li>\n";
    
    echo $table_cell;
    
    <pre>
    <td><img src='weddings2/36%20And%20they%20lived%20happily%20ever%20after.jpg'><br /> And they lived happily ever after </td></pre>
    
    <pre>
    <td><img src="weddings2/05Wedding_Chapel.jpg"><br />Wedding Chapel </td>
    <td><img src="weddings2/06Bride_Flowers.jpg"><br />Bride Flowers </td>
    <td><img src="weddings2/09%20Bridemaids%20on%20the%20lawn.jpg"><br /> Bridemaids on the lawn </td>
    <td><img src='weddings2/36%20And%20they%20lived%20happily%20ever%20after.jpg'><br /> And they lived happily ever after </td>
    </pre>