日期:2012-05-14  浏览次数:20714 次

实现方法及代码:

1.建立名称为test.jpg的文件夹,记得是文件夹

2.在该文件夹下放一个尺寸比较大的图片如570*383,确保该图片在帖到百度帖吧后会缩略显示

3.在该文件夹上放置一个index.php或index.asp文件,文件内容如下:

PHP版代码:

以下为引用的内容:
<?php
if($_SERVER['HTTP_REFERER']!=''){
@header("Content-type:image/jpeg");
echo file_get_contents("1.jpg");//第2步中放在test.jpg文件夹下的图片名称,亦即真正显示的图片
}
else{
@header("location:http://www.lyrs.net");//点击缩略图时要跳转到的网址
}
?>

ASP版代码:

以下为引用的内容:
<%
PIC_Url="1.jpg"

If UCase(Cstr(Request.ServerVariables("HTTP_REFERER")))<>"" Then
Response.Redirect Pic_Url
Else
Response.Redirect "Http://www.lyrs.net"
End if
%>

4.在百度帖吧中帖图:http://www.lyrs.net/test.jpg

在百度帖吧中图处帖上上网址后图片会正常显示,点击图片时会跳转到设定的页面,当然上复制上网址直接粘贴到浏览器或在QQ上发给好友,访问时者会跳转到你的网站。

原理分析:

百度中贴图尺寸较大时会以缩略图显示,点击缩略图可查看原图,但缩略图不是直接链向原图的,而是在js代码弹出的(弹出代码在http://static.tieba.baidu.com/tb/js/pb.js文件中),那这样就导致浏览器就不会有来路信息,所以可以在PHP程序或ASP程序中判断来路,如果来路为空,则跳转到指定网址,如果来路不会空,则利用通过test.jpg目录下的index.php或index.asp文件直接获取直正的图片或者生成直正的图片,之所以文件夹名test.jpg中要含.jpg实质上是为是在百度帖吧时将文件夹伪装成图片。

之所以,通过QQ传给朋友或直接在浏览器中输图片地址访问进也会跳转,那也是因为没有来路信息。

测试地址:http://tieba.baidu.com/f?kz=273127757 (9楼为PHP版,10楼为ASP版)

扩展应用:

事实上既然index.php或index.asp中输出的是直正的图片,那么我们完全可以实现图片随机显示的效果,如下ASP代码实现了两个图片的随机显示:

以下为引用的内容:

<%
PIC_Url="1.jpg2.jpg"

TheChar=""'分隔字符
ipy=split(PIC_Url,TheChar)
ipy_S=ubound(ipy)

if inStr(PIC_Url,TheChar)>0 then
Randomize
Pic_Url=ipy(int(ipy_S*rnd))
end if

If UCase(Cstr(Request.ServerVariables("HTTP_REFERER")))<>"" Then
Response.Redirect Pic_Url
Else
Response.Redirect "Http://www.lyrs.net"
End if
%>

同样我们也可以结合PHP应用,利用PHP实时生成动态图片,如下面代码即可读取自己博客最新文章标题生成图片: