我在PHP网页上显示大量远程图像,我需要检查图像是否按顺序存在 - 以处理没有图像条件。但是这个过程需要很大的负担才能检查每个远程文件的状况。请有人建议您处理此问题。
提前致谢。
答案 0 :(得分:2)
我认为有几种解决方案
您最好将这些图像复制到服务器。如果这样做,您将确保图像仍然存在且未被修改。
答案 1 :(得分:0)
不要获取整个文件,只需检查请求远程图像是否返回HTTP状态代码200(已找到)或其他内容(例如404未找到)。
试试这个答案:How can one check to see if a remote file exists using PHP?
您可以通过CURLOPT_NOBODY指示curl使用HTTP HEAD方法。
或多或少
$ch = curl_init("http://www.example.com/favicon.ico"); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // $retcode >= 400 -> not found, $retcode = 200, found. curl_close($ch);
答案 2 :(得分:0)
这样的事情可能有用。
<script type="text/javascript">
//Example error handling
var imgPlaceHolder = '//example.com/no-img.jpg';
var handelImageNotFound = function (imgId) {
$('#' + imgId).attr("src", imgPlaceHolder);
}
</script>
<?php
$imgList = [
'//example.com/foo1.jpg',
'//example.com/foo2.jpg',
'//example.com/baz.jpg',
];
?>
<?php for ($index = 0; $index < count($imgList); $index++): ?>
<img src="<?= $imgList[$index] ?>" id="img_<?= $index ?>" onerror="handelImageNotFound('img_<?= $index ?>')" />
<?php endfor; ?>
现在你必须编写一个javascript方法&#34; handelImageNotFound(imgId)
&#34;处理缺失图像的功能。