2015-06-03 42 views
2

我真的不想发布,但我在我的智慧结束。JavaScript,PHP阵列帮助摄像头图像,

我有一台相机,我将用它来向访客展示当前的天气状况。

我有一个PowerShell脚本保存从相机和PSFTP上传他们到我的FTP快照。文件名称如下'MMddyyyyhhmmss'HBGCWeatherCam.jpeg。

这些文件位于/ images文件夹

请求: 我需要阅读所有的图片文件夹中的文件,按降序排列sortby日期,然后将它传递给我的'JavaScript调用数组var images = [],x = -1;'

但是对于我的生活,我似乎无法得到它的工作。

任何帮助将不胜感激。

EDIT--以下是完整的工作代码,非常感谢Digital_Chris

<html> 
 
    <head> 
 
     <title>Weather Cam</title> 
 
\t 
 

 

 
<br/> 
 
<br/> 
 

 
\t 
 
     <script type = "text/javascript"> 
 
      function displayPreviousImage() { 
 
       x = (x === images.length - 1) ? 0 : x + 1; 
 
       document.getElementById("img").src = images[x]; 
 
      } 
 

 
      function displayNextImage() { 
 
       x = (x <= 0) ? images.length - 1 : x - 1; 
 
       document.getElementById("img").src = images[x]; 
 
      } 
 

 
      //function startTimer() { 
 
      // setInterval(displayNextImage, 500); 
 
\t \t \t //clearInterval(startTimer); 
 
      //} 
 

 
\t \t 
 
\t \t var images = [], x = -1; 
 
<?php 
 
\t $my_files = glob("images/*.jpeg"); 
 
    $counter = 0; 
 
    foreach(array_reverse(glob("images/*.jpeg")) as $file) { 
 
     echo "images[" . $counter . "] = '" . $file . "'; "; 
 
     $counter++; 
 
    } 
 
?> 
 
</script> 
 

 

 
    </head> 
 

 
    <body onload = "displayPreviousImage()"> 
 
    <div align="center"> 
 
     <img id="img" src="images/loading.gif" style="width: 500px; height: 500px;"/> 
 
\t <br/> 
 
     <button style="width: 100;" onclick="displayPreviousImage()">&#60; Previous</button> 
 
\t \t View Other Snapshots 
 
     <button style="width: 100;" onclick="displayNextImage()">Next &#62;</button> 
 
\t <br/> 
 
\t <button style="width: 100;" onClick="window.location.reload()">View Current</button> 
 
\t </div> 
 
    </body> 
 
</html>

+0

为什么不把对自己的生活更轻松和名称,如'yyyyMMddhhmmss'的文件吗? –

+0

我当然可以做到这一点,但我认为这不会增加任何复杂性,目前我正在尝试做的事情。 – Bill

+1

根据你的片段,'var_dump($ images);'不能输出任何东西,因为你永远不会定义'$ images'。是'print_r(glob(“images /]”));'工作? –

回答

0

这个答案假定您已经成功地得到文件名的数组$my_files

在你的JavaScript块,你需要一个PHP循环的图像:

 var images = [], x = -1; 
<?php 
    $counter = 0; 
    foreach($my_files as $file) { 
     echo "images[" . $counter . "] = 'images/" . $file . "'; "; 
     $counter++; 
    } 
?> 
</script> 

这将产生类似的输出:

 images[0] = 'images/somefile.jpeg'; 
     images[1] = 'images/anotherfile.jpeg'; 
     images[2] = 'images/whateversInTheDir.jpeg'; 

    </script> 
+0

看起来我们很接近,输出源代码如下:images [0] ='images/images /',我在修修补补,谢谢你的帮助! – Bill

+0

已解决,使用此解决方案更新原始帖子,非常感谢您的帮助克里斯,我非常感谢。现在就着手订购。 – Bill

+0

使用'$ my_files = glob(“images /*.*”);' –