此脚本扫描目录“uploads”并列出其子文件夹。 所有子文件夹都具有此结构
YYYY-MM-DD_HH:MM:ss_text
例如
我想在新的一天(第9和第10位)制作单独的UL TAGS。 像
这样的东西<ul><li>2013-03-18_23:59:59_cam1</li><li>2013-03-18_09:22:12_cam1</li></ul>
<ul><li>2013-03-17_19:05:02_cam2</li><li>2013-03-17_12:30:28_cam4</li></ul>
我不知道如何在foreach声明中比较位置9和10并寻求帮助!谢谢!
这是我的剧本
<?php
// Name of directory
$directory = "uploads/";
$action=opendir($directory);
while($read=readdir($action)){
$dat_array[] = $read;
}
//sort array reverse
rsort($dat_array);
foreach($dat_array as $read) {
if(!preg_match("!(\.|\..)$!", $read)){
echo '<ul><li><a href="dir.php?id='.$read.'"><span>'.$read.'</span><span></span></a></li></ul>';
}
}
?>
答案 0 :(得分:1)
试试这段代码:
// Name of directory
$dat_array = array();
$directory = "uploads/";
$action = opendir($directory);
while($read = readdir($action)){
$exp = explode("_",$read);
$dat_array[$exp[0]][] = $read;
}
rsort($dat_array);
foreach($dat_array as $val){
echo "<ul>";
foreach($val as $v){
echo "<li>".$v."</li>";
}
echo "</ul>";
}
答案 1 :(得分:0)
尝试:
<?php
// same as a glob() on a dir, just for testing
$data = array('2013-03-18_23:59:59_cam1',
'2013-03-18_09:22:12_cam1',
'2013-03-17_19:05:02_cam2',
'2013-03-17_12:30:28_cam4');
$tmp = '';
foreach($data as $k => $v) {
$day = substr($v,0,10);
if ($day != $tmp) {
$HTML .= '</ul><i>'.$day.'</i><ul>';
}
$HTML .= '<li>'.$v.'</li>';
$tmp = $day;
}
// add a closing tag to the end
$HTML .= '</ul>';
// NOTE: must remove inital closing tag
echo '<p>Daily lisitng:</p>'.substr($HTML,5);
?>
结果是:
每日lisitng:
2013年3月18日
2013年3月17日
答案 2 :(得分:0)
<?php
// Name of directory
$directory = "uploads/";
$action=opendir($directory);
while($read=readdir($action)){
$dat_array[] = $read;
}
//sort array reverse
rsort($dat_array);
foreach($dat_array as $read) {
$date1=explode("_",$read);
if($date2!=$date1)
{
echo"<ul>";
}
echo '<li><a href="dir.php?id='.$read.'"><span>'.$read.'</span><span></span></a></li>';
if($date2!=$date1)
{
echo"</ul>";
}
$date2=$date1;
}
?>