我有一个应用程序,它每 5 分钟读取一个 xml 文件(使用 cronjob)并将大约 700 个 url 保存到数据库中的图像中。5 分钟后,大部分图像被删除,该过程再次开始。
如果我将图像保存在本地,我的网站会分配得更快,但我想要一些关于如何做到这一点的建议。
- 我尝试使用 fopen、curl - 但一次写这么多图像只会让一切都停止。
- 将它们保存为bloob怎么样?这对速度有多大影响?
有任何想法吗?
我有一个应用程序,它每 5 分钟读取一个 xml 文件(使用 cronjob)并将大约 700 个 url 保存到数据库中的图像中。5 分钟后,大部分图像被删除,该过程再次开始。
如果我将图像保存在本地,我的网站会分配得更快,但我想要一些关于如何做到这一点的建议。
有任何想法吗?
如果您不需要重命名它们,那么为什么不按照这些方式做一些事情(假设 $images 是一个 URL 数组):
foreach($images as $image) {
exec("wget $image");
}
它比创建和写入文件要快。
我不建议存储为 blob,而是您可以将本地存储的图像名称保存到数据库中。在 blob 中存储如此多的图像将不必要地占用大量资源。
你可以试试这个。当您访问该 xml 文件时,获取所有 url 并存储到临时表中,例如unsaved_images_url
使用 aid
和url
as 列。
然后在本地从上面的表中获取行并将图像保存在磁盘上。这可以通过 shell 脚本或我不确定的东西来完成。并在本地保存图像后,从数据库中删除该行。