图片外链转内链的方法有很多,比如将外链图片保存到自己的网站服务器中,从而调用网站服务器中的图片。

今天用的是使用自己的PHP文件来代替图片外链,将图像输出到PHP中,从而达到外链转内链的效果,无需下载图片到服务器中。

下面是代码

<?php
header('Content-type:image/jpeg');
$url = base64_decode($_GET['avatar']);//获取URL参数
    if ($url !== null) {  
    // 尝试读取外部图片  
    if (@readfile($url) === false) {  
        // 如果读取失败,输出默认图片  
        readfile('https://52lc.top/resource/image/kun.jpg'); 
    }  
} else {  
    // 如果没有提供URL,直接输出默认图片  
    readfile('https://52lc.top/resource/image/kun.jpg'); 
}
?>

效果可以看看本站的

源图片链接:http://thirdqq.qlogo.cn/ek_qqapp/AQNNLvIBpzuP3IwvzeHlQnNwtk2VvTUvo1x7WOnMX9UrriazMq1FmhgnqP0JRP44tuuoFQqwQ/100

我的图片链接demo:https://52lc.top/qlogo.php?avatar=aHR0cDovL3RoaXJkcXEucWxvZ28uY24vZWtfcXFhcHAvQVFOTkx2SUJwenVQM0l3dnplSGxRbk53dGsyVnZUVXZvMXg3V09uTVg5VXJyaWF6TXExRm1oZ25xUDBKUlA0NHR1dW9GUXF3US8xMDA=

avatar=参数,为什么这么长,因为参数中的URL我使用了Base64编码,所以在代码中我同样使用了Base64解码步骤 base64_decode()


但是此方法有个弊端,它可能会影响到图片的加载速度,甚至可能还会拖慢网站的速度。

因为是从外部图片URL获取图片并输出到浏览器。如果页面打开速度较慢,可能是外部图片资源加载慢。

因为如果从外部URL加载图片,那么图片所在服务器的响应时间、带宽限制、网络延迟等因素都会影响到加载速度。

如果外部图片所在的服务器响应慢或不稳定,你自己的网站页面加载自然也会受到一定的影响。