xym revidoval tento gist . Přejít na revizi
Žádné změny
xym revidoval tento gist . Přejít na revizi
2 files changed, 92 insertions
bbimg.php(vytvořil soubor)
| @@ -0,0 +1,42 @@ | |||
| 1 | + | <?php | |
| 2 | + | // 目标链接 | |
| 3 | + | $targetUrl = 'https://source.unsplash.com/collection/2094000/800x400'; | |
| 4 | + | ||
| 5 | + | // 创建 cURL 资源 | |
| 6 | + | $ch = curl_init($targetUrl); | |
| 7 | + | ||
| 8 | + | // 设置 cURL 选项 | |
| 9 | + | curl_setopt_array($ch, [ | |
| 10 | + | CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'], | |
| 11 | + | CURLOPT_FOLLOWLOCATION => true, | |
| 12 | + | CURLOPT_RETURNTRANSFER => true, | |
| 13 | + | ]); | |
| 14 | + | ||
| 15 | + | // 执行 cURL 请求并获取返回的数据 | |
| 16 | + | $response = curl_exec($ch); | |
| 17 | + | ||
| 18 | + | // 检查是否有 cURL 错误 | |
| 19 | + | if (curl_errno($ch)) { | |
| 20 | + | echo 'cURL Error: ' . curl_error($ch); | |
| 21 | + | exit; | |
| 22 | + | } | |
| 23 | + | ||
| 24 | + | // 获取 cURL 请求的 HTTP 状态码 | |
| 25 | + | $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); | |
| 26 | + | ||
| 27 | + | // 关闭 cURL 资源 | |
| 28 | + | curl_close($ch); | |
| 29 | + | ||
| 30 | + | if ($httpCode === 200) { | |
| 31 | + | // 获取图片类型 | |
| 32 | + | $contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); | |
| 33 | + | ||
| 34 | + | // 设置响应头为图片类型 | |
| 35 | + | header('Content-Type: ' . $contentType); | |
| 36 | + | ||
| 37 | + | // 输出获取的图片数据 | |
| 38 | + | echo $response; | |
| 39 | + | } else { | |
| 40 | + | echo 'Failed to fetch image.'; | |
| 41 | + | } | |
| 42 | + | ?> | |
newimg.php(vytvořil soubor)
| @@ -0,0 +1,50 @@ | |||
| 1 | + | <?php | |
| 2 | + | // 目标链接 | |
| 3 | + | $targetUrl = 'https://source.unsplash.com/collection/2094000/800x400'; | |
| 4 | + | ||
| 5 | + | // 创建 cURL 资源 | |
| 6 | + | $ch = curl_init($targetUrl); | |
| 7 | + | ||
| 8 | + | // 设置 cURL 选项 | |
| 9 | + | curl_setopt_array($ch, [ | |
| 10 | + | CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'], | |
| 11 | + | CURLOPT_FOLLOWLOCATION => true, | |
| 12 | + | CURLOPT_RETURNTRANSFER => true, | |
| 13 | + | ]); | |
| 14 | + | ||
| 15 | + | // 执行 cURL 请求并获取返回的数据 | |
| 16 | + | $response = curl_exec($ch); | |
| 17 | + | ||
| 18 | + | // 检查是否有 cURL 错误 | |
| 19 | + | if (curl_errno($ch)) { | |
| 20 | + | echo 'cURL Error: ' . curl_error($ch); | |
| 21 | + | exit; | |
| 22 | + | } | |
| 23 | + | ||
| 24 | + | // 获取 cURL 请求的 HTTP 状态码 | |
| 25 | + | $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); | |
| 26 | + | ||
| 27 | + | // 关闭 cURL 资源 | |
| 28 | + | curl_close($ch); | |
| 29 | + | ||
| 30 | + | if ($httpCode === 200) { | |
| 31 | + | // 获取图片类型 | |
| 32 | + | $contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); | |
| 33 | + | ||
| 34 | + | // 禁用输出缓冲 | |
| 35 | + | ob_end_clean(); | |
| 36 | + | ||
| 37 | + | // 设置响应头为图片类型 | |
| 38 | + | header('Content-Type: ' . $contentType); | |
| 39 | + | ||
| 40 | + | // 禁止缓存 | |
| 41 | + | header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); | |
| 42 | + | header('Cache-Control: post-check=0, pre-check=0', false); | |
| 43 | + | header('Pragma: no-cache'); | |
| 44 | + | ||
| 45 | + | // 输出获取的图片数据 | |
| 46 | + | echo $response; | |
| 47 | + | } else { | |
| 48 | + | echo 'Failed to fetch image.'; | |
| 49 | + | } | |
| 50 | + | ?> | |
Novější
Starší