PHP readdir和sort
我正在做一个小画廊。我想从目录中读取文件名,并在去掉一些前导数字和文件扩展名后打印下面的文件名 我有两个版本的代码 版本1没有排序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(
$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/'),' ',$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/'),' ',$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/'),' ',$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>