通过代理访问解决第三方图床防盗链的问题

261次阅读
没有评论

1、在 PHP 中,您可以通过网络代理来解决图片跨域问题。下面是一个简单的示例代码,使用 PHP 来代理请求远程图片并将其返回给客户端:

在下面的示例中,我们首先从 GET 请求中获取远程图片的 URL,然后使用 cURL 发起对该 URL 的请求。获取到远程图片的内容后,我们设置正确的 Content-Type 并将图片内容输出给客户端。

您可以将上述代码保存为一个名为 proxy.php 的文件,然后通过访问 proxy.php?url= 远程图片 URL 来代理请求远程图片。请注意,这只是一个简单的示例,实际应用中可能需要添加错误处理、缓存、安全性检查等功能。

<?php
// 获取远程图片 URL
$remoteImageUrl = $_GET['url'];

// 使用 cURL 发起请求
$ch = curl_init($remoteImageUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$response = curl_exec($ch);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
curl_close($ch);

// 设置响应的 Content-Type
header("Content-type:" . $contentType);

// 输出远程图片内容
echo $response;

2、以下是一个简单的 PHP 代理实现,用于代理播放远程的 MP4 视频:

在下面的示例中,我们首先从 GET 请求中获取远程视频的 URL,然后设置正确的 Content-Type 为 video/mp4,最后使用 readfile 函数直接将远程视频的内容输出给客户端。

您可以将上述代码保存为一个名为 video_proxy.php 的文件,然后通过访问 video_proxy.php?url= 远程视频 URL 来代理播放远程的 MP4 视频。请注意,这只是一个简单的示例,实际应用中可能需要添加错误处理、缓存、安全性检查等功能。同时,需要确保您有合法获取并代理该视频的权限。

<?php
// 获取远程视频的 URL
$remoteVideoUrl = $_GET['url'];

// 设置响应的 Content-Type
header('Content-Type: video/mp4');

// 通过代理请求远程视频并输出给客户端
readfile($remoteVideoUrl);
正文完
有偿技术支持加微信
post-qrcode
 
评论(没有评论)
验证码