Discuz教程网

[代码修改] Discuz X2.0 增加自动pingRPC2功能 享受被秒收的乐趣!

[复制链接]
authicon dly 发表于 2011-9-25 10:10:28 | 显示全部楼层 |阅读模式
这只是一个小小的分享,以后只要折腾出好东西都会拿出来分享,我就喜欢和喜欢折腾的人一起折腾。嘿嘿,如果你想要一些功能,但是高手都不理你,那为什么不一起来折腾呢?既有趣又不用求人,那些商业的东西,我也说不好,但是我还是喜欢和大家一起折腾!~这个ping功能已经在我的站用了http://www.cndtd.com/,还不错,半夜搞完,百度就更新了我首页……希望会越来越好,希望大家的也是!~~

让在wordpress的折腾和共享精神在Discuz也燃烧起来吧,支持的,回复一个!~让更多人看见,沉了,俺会伤心的

好了,废话不说了,上码!!原帖地址:http://www.cndtd.com/thread-27-1-1.html,有使用问题,可以在我的站回复我活着在DZ上回复我!~


ping RPC2原本是博客通知搜索引擎博文更新的服务,能够有效地实现网站与搜索引擎之间的沟通,现在基本已经被各大博客程序使用。因此,ping RPC2功能的确是SEO的方式之一。本站采用的是Discuz X2.0 也想使用ping功能,不过在又是百度又是谷歌硬是没人搞出这个功能。好吧,既然没有,那就开始折腾吧,谁叫俺是发烧友!~
第一步:增加ping文件
  1. <?php
  2. if(isset($_GET['action']))
  3. {
  4. $canshu=$_GET['action'];
  5. }

  6. function postUrl($url, $postvar)
  7. {
  8. $ch = curl_init();
  9. $headers = array(
  10. "POST ".$url." HTTP/1.0",
  11. "Content-type: text/xml; charset="utf-8"",
  12. "Accept: text/xml",
  13. "Content-length: ".strlen($postvar)
  14. );
  15. curl_setopt($ch, CURLOPT_URL, $url);
  16. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  17. curl_setopt($ch, CURLOPT_POST, 1);
  18. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  19. curl_setopt($ch, CURLOPT_POSTFIELDS, $postvar);
  20. $res = curl_exec ($ch);
  21. curl_close ($ch);
  22. return $res;
  23. }

  24. $baiduXML = "<?xml version="1.0" encoding="utf-8"?>
  25. <methodCall>
  26. <methodName>weblogUpdates.extendedPing</methodName>
  27. <params>
  28. <param><value><string>CNDTD</string></value></param>
  29. <param><value><string>http://www.cndtd.com/</string></value></param>
  30. <param><value><string>http://www.cndtd.com/thread-$canshu-1-1.html</string></value></param>
  31. <param><value><string>http://www.cndtd.com/forum.php?mod=rss</string></value></param>
  32. </params>
  33. </methodCall>";
  34. $res = postUrl('http://ping.baidu.com/ping/RPC2', $baiduXML);

  35. if ( strpos($res, "<int>0</int>") )
  36. {
  37. header ("Location:http://www.cndtd.com/thread-$canshu-1-1.html");
  38. }
  39. else
  40. {
  41. header ("Location:http://www.cndtd.com/thread-$canshu-1-1.html#");
  42. }
  43. ?>
复制代码
以上参数符合百度的ping标准,你需要将相应的网址和配置修改为你自己的配置,详细内容请看:http://www.baidu.com/search/blogsearch_help.html#n7。修改为你自己的配置之后,将文件保存,文件名请自定义(一定要保密并且难以被猜解:仿制别人利用这个文件不断ping以造成不良影响)。

第二步:修改文件source\include\post\post_newthread.php
查找:
  1. showmessage('post_newthread_succeed', "forum.php?mod=viewthread&tid=$tid&extra=$extra", $param);
复制代码

修改为:
  1. showmessage('post_newthread_succeed', "ping文件的文件名称.php?action=$tid", $param);
复制代码
OK,大功告成!如何检测是否ping成功?如果发帖后跳转至的页面尾部包含#符号说明ping失败,如果没有说明ping成功。






上一篇:Discuz X2 虚拟股市 StockIns 9.5.4 正式版 (u20110923) for Discuz 发布
下一篇:大家好,请大家多多关照
authicon 〆シ龙辉シ 发表于 2011-9-27 14:14:44 | 显示全部楼层
好东西,支持下。。。
authicon 晨星 发表于 2011-11-5 13:30:53 | 显示全部楼层
ping不了啊,我弄不明白
authicon alvintony 发表于 2011-12-10 23:36:30 | 显示全部楼层
楼主 支持你  本人下载测试下 有效果了会再来
authicon alvintony 发表于 2011-12-10 23:54:38 | 显示全部楼层
添加了后  无法发表文章  报500错误了  老大  帮忙啊
authicon 石头 发表于 2011-12-14 15:39:25 | 显示全部楼层
这个强悍 wp就有 没想到dz的也可以有了
authicon 晨星 发表于 2012-2-28 16:56:57 | 显示全部楼层
谷歌的自动ping文件该怎么写啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 23:40

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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