就像这张图片一样:在人别人未经许可的网站上使用会出现:
实现原理如下:
大家都知道许多网站的图片都是无法直接外链的,因为有限制,直接引用就会显示一张错误图片,为此很多人都很苦恼,当然网上介绍的方法也有一些,总的而言大都是利用readfile和file_get_contents函数获取的,今天给我也给大家介绍一些外链方法,在此给大家分享一下!
1.利用readfile函数获取外链图片
php中readfile函数是读入一个文件并写入到输出缓冲。这个经常用于外链图片上及下载方法上
以下是一段精简的php代码
-
<?php
-
readfile($_GET['url']);
-
?>
只有三行!!使用方法很简单,如下:
http://你的域名/保存的文件名.php?url=图片的地址
当然你也可以稍作修改,做个判断,不然别人调用用你的这个外链文件,恐怕你的空间的流量及负载也吃不消
以下给再给出一个带判断的代码,只能是你自己的网站调用,其他网站调用则返回一张指定的图片。
-
<?php
-
$url=$_SERVER['HTTP_REFERER'];
-
preg_match("/[\w][\w-]*\.(.*?)\//",$url, $gonten);
-
$host = $gonten[1]; //得到主域名
-
if ($host=="cx125.com"){ //判断是否为自己的网站,实则输出正确图片,反则输出指定的错误图片
-
readfile($_GET['url']);
-
}else{
-
readfile("http://i.6.cn/tu.6.cn/74/7a/af/1d1e05deda50e0482dc347db078fb032.gif");//指定的错误图片
-
}
-
?>
使用方法同上还是
http://你的域名/保存的文件名.php?url=图片的地址
2.利用file_get_contents函数获得外链图片的方法
下面再介绍一个利用file_get_contents函数获得图片的方法,这个需要你的空间支持allow_url_fopen,如果不支持那就没办法了。
代码如下
-
<?php
-
$url=$_SERVER['HTTP_REFERER'];
-
preg_match("/[\w][\w-]*\.(.*?)\//",$url, $gonten);
-
$host = $gonten[1]; //得到主域名
-
if ($host=="cx125.com"){//判断是否为自己的网站域名,不是则输出错误图片
-
$picurl = stripcslashes($_REQUEST["url"]);
-
$content = file_get_contents($picurl);
-
header("Content-Type: image/jpeg; charset=UTF-8");
-
echo $content;
-
}else{
-
$picurl="http://i.6.cn/tu.6.cn/74/7a/af/1d1e05deda50e0482dc347db078fb032.gif";//指定错误图片
-
$content = file_get_contents($picurl);
-
header("Content-Type: image/jpeg; charset=UTF-8");
-
echo $content;
-
}
-
?>
使用方法 http://你的域名/保存的文件名.php?url=图片的地址
上面是带判断的,下面一样给出精简代码(如果你想给别人用的话)
-
<?php
-
$picurl = stripcslashes($_REQUEST["url"]);
-
$content = file_get_contents($picurl);
-
header("Content-Type: image/jpeg; charset=UTF-8");
-
echo $content;
-
?>
使用方法同上一样
文章来源:http://bbs.cx125.com/thread-2670-1-1.html