php模拟reffer破解防止盗用图片


当我们需要调用其他网站图片的时候,其他网站的图片往往显示一个不显示,但是单独放在浏览器访问,却又可以。
php模拟reffer破解防止盗用图片

<?php
error_reporting(0);
 
$HOST = "java-er.com";
 
 
require 'class/db.php';
header("Content-type:   image/png");
 
$id = $_GET["id"];
$sql = "select * from blog where id=$id";
$row = $db->queryRow($sql);
$url = $row["url"];
//读出来的URL为http://www.sina.com.cn/aaad.html 一会充当reffer
 
$imgurl = $_GET["url"];
 
//提取图片domain
$domain = preg_replace("/^http:\/\/(.+?)\/.+?$/","$1",$imgurl);
 
//兼容原来的网站 比如/2.jpg
if($url==""){
    $url = $imgurl;
}
 
if(!preg_match("/^http:\/\/.*?$/", $imgurl)){
    $domain = $HOST;
    $imgurl = "http://".$HOST."/".$imgurl;
    $url = $imgurl;
}
 
 
//兼容原来的网站 END
 
 
 
 
//image.58.com/showphone.aspx?t=v55&v=0926DC20FE0C323BH29559C838D7CB65E
 
$fp = fsockopen("$domain", 80, $errno, $errstr, 30);    
if (!$fp) {    
    echo "ERR:$errstr ($errno)<br />\n";
} else {    
	$out = "GET $imgurl HTTP/1.1\r\n";    
	//$out = "GET / HTTP/1.1\r\n";    
    $out .= "Accept:*/*\r\n";    
    $out .= "Host: $domain\r\n";    
    $out .= "Referer: $url\r\n";    
    $out .= "Connection: Close\r\n\r\n";    
	$str = "";
    fwrite($fp, $out);
    while (!feof($fp)) {    
        $str.=fgets($fp, 128);    
    }    
	$str = trimHeader($str);
	echo $str;
    fclose($fp);    
}   
 
 
function   trimHeader($content){
        $array=split("\r\n\r\n",$content);
        return   $array[1];
}
 
?>

//自己网页输入图片内容的时候自动替换

$c = preg_replace("/<img src=\"(.+?)\".*?>/is","<img src=\"/showimg_article.php?id=$id&url=$1\" />",$c);
如果你是一名技术人员可加我QQ 2651-0442-02,如果你是java技术人还可以加入QQ群 1784-9136-0
你将得到的不仅仅是技术的交流,还有职业机会,人生解惑.
首发地址:月小升博客https://java-er.com/blog/php-use-else-image/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
此条目发表在 PHP 分类目录,贴了 , , , 标签。将固定链接加入收藏夹。
既然来了,就评论一下,不会怀孕的

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">