在 MySQL 数据库中保存路径和计数图像



我可以扫描通过FTP上传到服务器的文件目录

现在我想丢弃空数组并将图像的路径和总数添加到 MySQL 数据库中。我将使用该路径和图像计数在 HTML 播放器中使用它们并将这些图片作为视频运行。

这是我的代码:

<?php
$path = '/home/zackpc/usr/share/zoneminder/www/events/1';
// an unsorted array of dirs & files
$files_dirs = iterator_to_array( new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path),RecursiveIteratorIterator::SELF_FIRST) );
echo '<html><body><pre>';
// create a new associative multi-dimensional array with dirs as keys and their files
$dirs_files = array();
foreach($files_dirs as $dir){
if(is_dir($dir) AND preg_match('//.$/',$dir)){
$d = preg_replace('//.$/','',$dir);
$dirs_files[$d] = array();
foreach($files_dirs as $file){
if(is_file($file) AND $d == dirname($file)){
$f = basename($file);
$dirs_files[$d][] = $f;
}
}
}
}
print_r($dirs_files);
echo '</pre></body></html>';
?>

我得到以下输出:

[/home/zackpc/usr/share/zoneminder/www/events/1/18/08/06/14] => Array
(
)
[/home/zackpc/usr/share/zoneminder/www/events/1/18/08/06] => Array
(
)
[/home/zackpc/usr/share/zoneminder/www/events/1/18/08/06/11/21/28] => Array
(
[0] => 00020-capture.jpg
[1] => 00043-capture.jpg
[2] => 00006-capture.jpg
[3] => 00008-capture.jpg
[4] => 00049-capture.jpg
[5] => 00007-capture.jpg
[6] => 00013-capture.jpg
[7] => 00025-capture.jpg
[8] => 00016-capture.jpg
[9] => 00033-capture.jpg
[10] => 00051-capture.jpg
[11] => 00014-capture.jpg
[12] => 00044-capture.jpg
[13] => 00001-capture.jpg
[14] => 00035-capture.jpg
[15] => 00039-capture.jpg
[16] => 00048-capture.jpg
[17] => 00009-capture.jpg
[18] => 00022-capture.jpg
[19] => 00034-capture.jpg
[20] => 00024-capture.jpg
[21] => 00041-capture.jpg
[22] => 00002-capture.jpg
[23] => 00029-capture.jpg
[24] => 00023-capture.jpg
[25] => 00010-capture.jpg
[26] => 00038-capture.jpg
[27] => 00003-capture.jpg
[28] => 00017-capture.jpg
[29] => 00047-capture.jpg
[30] => 00015-capture.jpg
[31] => 00012-capture.jpg
[32] => 00005-capture.jpg
)

只循环一次。 仅存储所需的内容:路径和图像计数。

foreach($files_dirs as $file){
if (is_file($file)) {
$d = dirname($file);
if (!isset($dirs_files[$d])) {
$dirs_files[$d] = 0;
} else {
++$dirs_files[$d];
}
}
}

我不得不说:

  1. 我迷失在你的代码中。
  2. 我没有测试我的答案,所以不能保证它是完美的。

最新更新