1

我希望我能把自己说清楚。我有一个网络摄像头,每秒向我的网站发送一张图片。他们都在这样的文件夹中总结:

(IPCAM)_0_20130413145714_62.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 14]
(IPCAM)_0_20130413145719_63.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 19]
(IPCAM)_0_20130413145723_64.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 23]
(IPCAM)_0_20130413145727_65.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 27]

你能看到图像名称中的模式吗?我目前正在使用这个脚本来显示它们:

<?php 
$dirname = "./";
$images = glob($dirname."*.jpg");
foreach($images as $image) {
echo '<img src="'.$image.'" /><br />';
}
?>

我想要一个日历,这样我就可以选择[Day: **]并获取当天拍摄的所有照片。

我希望有人可以帮助我处理这段代码。

4

5 回答 5

2

你试过了吗

$dayInQuestion = '20130413';
glob($dirname."(IPCAM)_0_".$dayInQuestion."*.jpg"); 

和你约会?

参考:更多选项的 PHP 手册,例如http://www.php.net/manual/en/function.glob.php#110340

于 2013-04-13T14:57:05.050 回答
1

为今天制作一个字符串,然后将其与您的图像匹配。因此,我们将图像名称与今天的字符串匹配,而不是提取所有图像 (*):

date_default_timezone_set('America/New_York');
$today = date("Ymd");
$files = glob($dirname.'*'.$today.'*.jpg');
于 2013-04-13T15:01:05.580 回答
0

这是我使用 jQuery 日期选择器的答案:

工作示例可以在这里找到

在示例中选择 13th April 2013

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>StackOverflow Answer</title>
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
        <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
        <link rel="stylesheet" href="/resources/demos/style.css" />
        <script>
          $(function() {
          $( "#datepicker" ).datepicker({
                  onSelect: function(date, instance){
                      window.location = "?date="+date;
                  }
              });
          });
        </script>
    </head>
    <body>
        <p>Date: <input type="text" id="datepicker" /></p>
        <?php
            if($_GET)
            {
                $dirname = "IPCam/";
                $images = glob($dirname."*.jpg");
                $date = str_replace('/', '', $_GET['date']);
                $day = substr($date, 2, 2);
                $month = substr($date, 0, 2);
                $year = substr($date, 4, 4);
                $formattedDate = $year.$month.$day;
                foreach($images as $image)
                {
                    if(strpos($image, $formattedDate))
                    {
                        echo '<img src="'.$image.'" /><br />';
                    }
                }
            }
        ?>
    </body>
</html>
于 2013-04-13T15:57:53.453 回答
0

我没有对此进行测试,但是:

<?php 
$dirname = "./";
$images = glob($dirname."*.jpg");
$date = "[Year: ".$_GET['y']."] [mo:".$_GET['m']."] [Day: ".$_GET['d']."]";
foreach($images as $image) {
    if (strpos($image,$date) !== false) {
        echo '<img src="'.$image.'" /><br />';
    }
}
?>

请求: ?y=2013&m=12&day=13

于 2013-04-13T14:56:10.990 回答
0

只要照片使用一致的命名方案,您就应该能够使用 strstr 按文件名过滤它们。像这样的东西,也许:

<?php 
$dirname = "./";
$daynum = "13";
$images = glob($dirname."*.jpg");
foreach($images as $image) {
    if (strstr($image, 'Day' + $daynum))
    {
        echo '<img src="'.$image.'" /><br />';
    }
}
?>
于 2013-04-13T14:56:52.977 回答