找回密码
 注册加入

扫一扫,极速登录

QQ登录

只需一步,快速开始

搜索
查看: 5863|回复: 3

Discuz友情连接自动提取PR,自动检测对方有没有本站的连接

[复制链接]
发表于 2011-6-5 17:28:43 | 显示全部楼层 |阅读模式
第一步,首先建立一个 /source/function/function_autopr.php
  1. <?php
复制代码
第二步,再建立一个 source\include\cron\cron_autolink.php


  1. <?
  2. if(!defined('IN_DISCUZ')) {
  3. exit('Access Denied');
  4. }
  5. require_once DISCUZ_ROOT.'./source/function/function_autopr.php';

  6. $discuz = & discuz_core::instance();
  7. $myhost = 'http://www.XXXXXXX.com';//你的域名

  8. set_time_limit(1800);
  9. $query = DB::query("select id,url,display from pre_common_friendlink where display=0 and checknum<10");
  10. while($links = DB::fetch($query)) {
  11. $links['url']=strtolower($links['url']);
  12. if(!empty($links['url']) and substr($links['url'],0,4)=="http"){
  13. $htmls=@file_get_contents($links['url']);
  14. }

  15. $website = $links['url'] ;
  16. $website = str_replace("http://","",$website);
  17. $website = str_replace("https://","",$website);
  18. $website = str_replace("/","",$website);
  19. $website = trim($website);
  20. $pr = prget($website);
  21. $pr = str_replace( "\n", "", $pr );
  22. if(substr($htmls,-1) == "/"){
  23. $htmls = str_replace("/","",$htmls);
  24. }

  25. //if( !strstr($htmls,$myhost) ) {
  26. if(!ereg($myhost,$htmls)){
  27. DB::query("update pre_common_friendlink set checknum=checknum+1,pr='".$pr."' where id=".$links['id']);

  28. }else{

  29. if($links["display"]==0){
  30. DB::query("update pre_common_friendlink set display=1,checknum=0,pr=".$pr." where id=".$links['id']);
  31. }
  32. }
  33. }
  34. DB::query("update pre_common_friendlink set display=0 where checknum>7");//七次检查没有,自动隐藏

  35. //DB::query("delete from pre_common_friendlink where checknum>10");//十次检查没有,自动删除。
  36. ?>
复制代码
第三步,在数据库表 pre_common_friendlink 增加display,checknum,pr字段
  1. ALTER TABLE pre_common_friendlink ADD `display` smallint(2) unsigned NOT NULL default '0'
  2. ALTER TABLE pre_common_friendlink ADD `checknum` tinyint(3) NOT NULL default '0'
  3. ALTER TABLE pre_common_friendlink ADD `pr` int(11) NOT NULL default '0'
复制代码
第四步,在后台--工具--计划任务添加cron_autolink.php
执行一下就可以了。

大功告成。

另外,也可以在添加时,就直接提取对方的PR值。
用法:
$pr = prget($pr);

这个帖子希望官方能够看到,并完善DZ1.5的友情连接功能里。

发表于 2011-6-5 21:40:26 | 显示全部楼层
X2 RC版本可以吗?
回复 支持 反对

使用道具 举报

发表于 2011-6-17 07:30:36 | 显示全部楼层
2.0能用吗?还要修改数据库,这个最头疼了
回复 支持 反对

使用道具 举报

发表于 2011-6-17 07:31:09 | 显示全部楼层
我晕,怎么这么背呀!七个!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册加入  

本版积分规则

Archiver|手机版|小黑屋|Discuz!扩展中心 ( 浙ICP备14042422号-1 )|网站地图QQ机器人

GMT+8, 2024-4-29 08:05 , Processed in 0.157850 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表