if (is_dir($dir)) {
if($handle = opendir($dir)) {
while($file = readdir($handle)) {
// Break the filename by period; if there's more than one piece, grab the last piece.
$parts = explode(".", $file);
if (is_array($parts) && count($parts) > 1) {
$ext = end($parts);
// If it's an image that we want, echo the code.
if ($ext == "png" OR $ext == "PNG" OR $ext == "jpg" OR $ext == "JPG" OR $ext == "jpeg" OR $ext == "JPEG" OR $ext == "gif" OR $ext == "GIF")
echo "<img src=\"$path/$file\" />";
}
}
closedir($handle);
}
...
我在Wordpress中使用它,页面加载速度非常慢,但也可能是因为它上面有很多图像。我只是想确保我没有做出因性能原因而不满意的事情。
答案 0 :(得分:3)
嗯,你可以提高效率:
$extension = strtoupper(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($extension(array('PNG', 'JPG', 'JPEG', 'GIF'))) {
echo '<img src="$path/$file" />';
}
甚至使用glob()而不是opendir / readdir / closedir ...因为你可以给它一个文件扩展名的模式。
但是没有什么本质上缓慢的
答案 1 :(得分:3)
我们无法确切地说opendir很慢,因为它们有许多可能影响性能的配置值。
你应该做的是对应用程序中的代码进行基准测试,如下所示:
$start = microtime(true);
//Your Code
$end = (microtime(true) - $start);
并确切了解处理过程需要多长时间。
其他一些提示:
$ext == "png" OR $ext == "PNG"
是多余的,您应该使用$ext = strtolower(end($parts));
,然后使用:
$ext == "png" OR $ext == "jpg" OR $ext == "jpeg" OR $ext == "gif"
更好,你可以使用
if(in_array($ext,array("png","jpg","jpeg","gif"))){}
也可以不使用OR
而只使用双管道运算符作为条件:||
。
答案 2 :(得分:2)
获取firefox“quickjava”插件。
通过这种方式,您可以禁用图像(通过单击右上角的蓝色I使其变为红色)并测试网页的性能,而不显示任何图像。