最近,在使用基于ThinkPHP开发的Yourphp企业网站管理系统做企业站,在使用的过程当中遇到了Yourphp强制版权(Powered by yourphp)的问题。甚是烦恼!!!那么,我们如何才能彻底去除Yourphp强制版权(Powered by yourphp)呢?今天我就把我的方法写出来,希望对有需要的朋友有点帮助,同时也算是自己的笔记吧,呵呵,废话不多说了。
首先,我想到的是去模板文件Home_header.html内找Powered by yourphp,去除后并更新缓存,依然不行。(很是生气!!!)无奈,我就进行了全局搜索,还好,让我发现了Core\Lib\Template\ThinkTemplate.class.php这个文件。在文件里找到了如下代码段:
if(!YP_KEY){
$tmplContent = str_replace('</title>',' - Powered by Yourphp</title>',$tmplContent);
}
大家可能以为Yourphp藏的够深,其实这还不算啥,接着看呵呵
不难发现Yourphp是否加强制版权(Powered by yourphp)是通过一个常量来控制的。于是,在项目的配置文件中定义了YP_KEY这个常量并赋值为:true,心想这回肯定万事大吉了!!!(心里那个窃喜啊!!!)于是,更新缓存刷新页面,兄弟我瞬间崩溃,万恶的强制版权(Powered by yourphp)依然存在(貌似在鄙视我呢哈)。
没有办法只好全局搜索YP_KEY了,在搜索到的结果中发现文件:Core/Common/runtime.php,在这个文件中我们可以找到如下代码段:
if(defined('YP_KEY')){
$content = preg_replace('/defined\(\'YP_KEY\'\) or define\(\'YP_KEY\',\'(.+?)\'\)\;/','',$content);
exit;
}
preg_match('/[\w][\w-]*\.(?:com\.cn|net\.cn|com|cn|co|net|org|gov|cc|biz|info)(\/|$)/isU', $_SERVER['SERVER_NAME'], $domain);
$domain = $domain[0];
if(is_file(__ROOT__.$domain.'.php')){
include __ROOT__.$domain.'.php';
eval(authcode(base64_decode($code)));
$content .= sha1( $domain.$key['key'])==$key['code'] ? ' defined(\'YP_KEY\') ? exit : define(\'YP_KEY\',true);' : 'define(\'YP_KEY\',false);';
}else{
$content .= 'define(\'YP_KEY\',false);';
}
通过看这段代码,我们可以发现,无论我们自己是否定义YP_KEY这个常量或者赋给YP_KEY(true或者false)最终这段代码都会将YP_KEY的值强制改变为false,所以,这才是Yourphp强制加版权的根。
由此看来,我们将这两处代码段删除即可彻底去除Yourphp强制版权(Powered by yourphp)!
说明:我所用的版本为2.2Released
作者:灬指南针灬
网易博客:http://wjlwl0228.blog.163.com 灬指南针灬 的博客
CSDN博客:http://blog.csdn.net/wjl0228wl
转载请注明来源:http://wjlwl0228.blog.163.com/blog/static/1669118732013012102754879/或http://blog.csdn.net/wjl0228wl/article/details/8495814