新浪图床最新年后新情况大量404急救修复办法
废话不多说代码如下
解决方案将新浪图床的图片下载到当前sina.php目录下的image文件夹里面之后显示这张图片实现图片复活
sina.php上传到哪里就会在哪里创建一个image用来缓存图片
<?php
/*
yum.com/sina/sina.php
yum.com/sina/sina.php?url=https://tvax1.sinaimg.cn/large/005E525vgy1h0ne3zx03fj30sg0fmwl3.jpg
*/
//使用图片头输出浏览器
header("Content-Type: image/jpeg;text/html; charset=utf-8");
$upurl = $_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"];
if (stristr($upurl,'url=') == null) {exit;}
$img_url = $_GET["url"];
$img_name = basename($img_url);
// print_r($img_name);
$ext = strrchr($img_url, ".");
if ($ext != ".gif" && $ext != ".jpg" && $ext != 'png'){
//如果图片格式不为.gif 或者.jpg .png,直接退出即可
return false;
}
$dir_path = __DIR__.'/image/'.$img_name;
if(file_exists($dir_path)){
// echo "当前目录中,文件".$file."存在";
$img = file_get_contents($dir_path,true);
echo $img;
exit;
}
$username="/image/";
$dir = __DIR__ . $username;
//创建文件夹
creat_file($dir);
//存储到指定文件目录判断权限
$basepath = '/image/';
$dir_path = __DIR__ . $basepath;
if (!is_dir($dir_path)) {
mkdir($dir_path, 0777, true);
}
ob_start();//打开输出
readfile($img_url);//输出图片文件
$img = ob_get_contents();//得到浏览器输出
ob_end_clean();//清除输出并关闭
$fp2 = @fopen($dir_path. '/'. $img_name, "a");
fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名
fclose($fp2);
// return $img_name;//返回新的文件名
echo file_get_contents( __DIR__.'/image/'.$img_name,true);
function creat_file($dir)
{
//创建文件夹
if(file_exists($dir) && is_dir($dir)){
}else{
mkdir ($dir,0777);
}
}
爱笔记