ag游戏客服|官方二次开发

?找回密码
?立即注册
搜索
热搜: 活动 交友 discuz
查看: 1745|回复: 0
打印 上一主题 下一主题

[采集] ag游戏客服|官方dedecms“防采集混淆字符串”功能源码分析教程

[复制链接]

1046

主题

1109

帖子

5334

积分

超级版主

Rank: 8Rank: 8

金币
256
贡献
3959
跳转到指定楼层
楼主
发表于 2015-12-8 17:58:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
??有时候我们写的原创内容不希望其它站长复制过去,特别是当别人采集我们网站上的内容时,应该怎么办?不用担心ag游戏客服|官方系统帮我们处理好了这个功能——防采集混淆字符串功能,如下图所示:



??这里可以设置你的网站的一些信息,例如,网站名称“ag游戏客服|官方基地”,网站域名“www.dedebase.com”,这样当别人采集你的网站的时候,就会出现我们设置的这些内容,这样别人复制过去的内容就是乱七八糟的,而且,还有我们的版权信息,这样可以保护我们的网站。

??当在这里设置好后,还不行,还要在ag游戏客服|官方模板里面设置一下防采集的内容,例如,我们想ag游戏客服|官方基地网站内容不想被别人采集,那么,就要在内容页模板里面写上如下标签:
  1. {dede:field name='body' function='RndString(@me)'/}
复制代码

??其中,这里面的这个函数RndString(参数),是在文件include/helpers/downmix.helper.php里面。有兴趣的可以研究一下这个函数,其实,真正实现防采集的是这个函数处理的,上面只是一个设置内容罢了。

??设置内容功能是由文件article_string_mix.php来实现的。

代码分析开始:

??1. 引入文件,并初始化一些变量:



??设置防采集配置文件:
  1. $m_file = DEDEDATA."/downmix.data.php";
复制代码


??我们在ag游戏客服|官方后台配置的防采集内容就保存到这个文件里面,当我们点击“防采集串混淆”菜单项后,程序就会获取文件downmix.data.php,然后,把这里面的原来配置好的内容显示到“防采集混淆字符串管理”里面,也就是我们点击“防采集串混淆”后看到的内容,处理代码是:

  1. if(empty($allsource) && filesize($m_file)>0)
  2. {
  3. ? ? $fp = fopen($m_file,'r');
  4. ? ? $allsource = fread($fp,filesize($m_file));
  5. ? ? fclose($fp);
  6. }
复制代码

??这段代码是读出我们配置的文件内容,然后,通过一个提示窗口对象显示获取防采集内容,代码如下:



??当设置好防字符串内容后,点击“确定”后,处理的代码是:

  1. if($dopost=="save")
  2. {
  3. ? ? $fp = fopen($m_file,'w');
  4. ? ? flock($fp,3);
  5. ? ? fwrite($fp,$allsource);
  6. ? ? fclose($fp);
  7. ? ? echo "";
  8. }
复制代码


??也就是重新覆盖原来的内容,这样就相当于更新了文件downmix.data.php,这根查询一个表内容,然后,进行编辑再进行更新类似,只不过这里操作不是一个数据库表,而是一个文件。

??注意这里面的一个php函数flock($fp,3),它的功能是以支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定, 否则它不会工作)锁定全部文件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|ag游戏客服|官方二次开发

GMT+8, 2019-11-13 19:56 , Processed in 0.387728 second(s), 26 queries .

Powered by Discuz! X3.2

? 2001-2013 Comsenz Inc.

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