我想计算文件夹中的文件数量并返回该数字以设置.js文件中的变量。
基本上,我在一个文件夹中有X个图像。当用户单击右箭头时,我将现有的8个图像集替换为下一组8个图像,依此类推。我目前手动将变量(现在38)输入到页面中,因为文件夹中有38个缩略图。
代码完美无缺,但我讨厌每次添加文件时更改数字的想法。我想让它将变量设置为文件夹中的确切图像数。
这可能使用JavaScript或jQuery吗?我是否需要编写一个PHP文件才能为我返回此变量?任何信息都会很棒!
答案 0 :(得分:7)
这是PHP更适合的任务,将您的Javascript保留在客户端。编写一个非常简单的PHP脚本来计算文件夹中的文件
echo iterator_count(new DirectoryIterator('/home/path/dir'));
并从您的JQuery脚本中调用它。
$.get('numberoffiles.php', function(data) {
alert(data);
});
答案 1 :(得分:2)
如果您必须使用客户端并且文件已编号,请在发生错误时预加载文件并设置编号
...
Img = new Image();
Img.onerror=function() {
maxImages=cnt-1;
}
Img.src = "image_"+cnt+".jpg";
答案 2 :(得分:2)
简单方法:
<?php
$dir = "images";
$file_count = count(glob("{$dir}/*.*"));
?>
<html>
<head>
<title>Welcome</title>
</head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var dir = <?php echo $dir ?>;
var file_count = <?php echo $file_count ?>;
$('#msg').html('File count in folder ' + dir + ' is ' + file_count);
});
</script>
<body>
<div id="msg"></div>
</body>
</html>
答案 3 :(得分:0)
我会这样做
echo count(glob("{$_GET['dir']}/*.*"));