gpt4 book ai didi

PHP 脚本需要将近 15 秒才能加载

转载 作者:行者123 更新时间:2023-12-04 06:08:08 26 4
gpt4 key购买 nike

我编写了一个 PHP 脚本,它遍历给定的文件夹,从那里提取所有图像并将它们显示在 HTML 页面上(作为标签)。该页面的大小约为 14 KB,但该页面几乎需要 15 秒。

这是代码:

function displayGallery( $gallery, $rel, $first_image ) {
$prefix = "http://www.example.com/";
$path_to_gallery = "gallery_albums/" . $gallery . "/";
$handler = opendir( $path_to_gallery ); //opens directory
while ( ( $file = readdir( $handler ) ) !== false ) {
if ( strcmp( $file, "." ) != 0 && strcmp( $file, ".." ) !=0 ) {
//check for "." and ".." files
if ( isImage( $prefix . $path_to_gallery . $file ) ) {
echo '<a href="' . $path_to_gallery . $file . '"></a>';
}
}
}
closedir( $handler ); //closes directory
}

function isImage($image_file) {
if (getimagesize($image_file)!==false) {
return true;
} else {
return false;
}
}

我查看了其他帖子,但其中大部分都涉及 SQL 查询,这不是我的情况。

任何建议如何优化这个?

最佳答案

我的假设是 isImage是问题所在。我以前从未见过。为什么不只检查特定的文件扩展名?这是相当快的。
更新:您也可以尝试改用 exif_imagetype()这可能比 getimagesize() 快将该检查放入 top 函数也会更快。这些功能都不是通过网络连接完成的 - 完全避免。最好坚持使用文件扩展名。

您还没有直接访问文件的权限吗?每次您在网络上查找内容时,都需要一段时间 - 您需要等待整个文件下载完毕。直接在您的系统上查找文件。

使用 scandir一次将所有文件名放入一个数组中并遍历它们。这可能会加快处理速度,因为我认为不会有来回单独获取事物的情况。

而不是做 strcmp...就做$file != '.' && $file != '..'
此外,速度将取决于返回的文件数量,如果有很多,速度会很慢。操作系统也会因目录中的文件过多而变慢。您正在循环遍历所有文件和目录,而不仅仅是图像,因此数字很重要,而不仅仅是图像。

关于PHP 脚本需要将近 15 秒才能加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com