1 <?php
2 function encode_file_contents($filename) {
3
4 $type=strtolower(substr(strrchr($filename,'.'),1));
5 if ('php' == $type && is_file($filename) && is_writable($filename)) { // 如果是PHP文件 并且可写 则进行压缩编码
6 $contents = file_get_contents($filename); // 判断文件是否已经被编码处理
7 $contents = php_strip_whitespace($filename);
8
9 // 去除PHP头部和尾部标识
10 $headerPos = strpos($contents,'<?php');
11 $footerPos = strrpos($contents,'?>');
12 $contents = substr($contents, $headerPos + 5, $footerPos - $headerPos);
13 $encode = base64_encode(gzdeflate($contents)); // 开始编码
14 $encode = '<?php'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>";
15
16 return file_put_contents($filename, $encode);
17 }
18 return false;
19 }
20
21 //调用函数
22 $filename = './test.php';
23 encode_file_contents($filename);
24 echo "OK,加密完成!";
25 ?>