- 论坛徽章:
- 0
|
to HonestQiao
HonestQiao : 你好,
我似乎没有明白你的意思,我觉得这个问题应该是zend guard 加密时的问题,或者是zend optimizer 解密时的问题。
个人觉得可能是设置的关系,或则是版本的问题,和编写程序编写应该没有什么关系吧。
我的情况是下面这样的,请指教:
1, 我把类的定义写在一个文件中,如class_file1.php里面的内容如下:
class myclass {
.........
}
2, 在另一个config.php 文件中定义常量,如下:
define('DEFAULTCLASS', 'myclass');
3, 在实际使用myclass类却是在另一文件中,如action.php 中
$myaction = new DEFAULTCLASS
上面这样的语法在php中是可以用的,如果不用zend guard 加密也完全运行正常。
但是,如果加密了,网页上就会提示说 这个'myclass' 不存在的错误。
我也试过了,如果action.php文件中只有一些echo 这样的简单的php语句,zend 加密后 运行是没有什么问题的。
所以我觉得是,加密后class_file1.php中的内容已经发生了变化,解密后myclass这样的类名在class_file1.php已经是不存在的了,已经变成了一个很难“阅读”的怪名字,如同“V92eb5ffe”之类的,但是,config.ph 文件中的define('DEFAULTCLASS', 'myclass')这样的语句
却没有完全变化,字符串的内容依旧,所以当new DEFAULTCLASS 时,就等于是new myclass, 但是zend opitimer 解密后的class_file1.php 文件中,只有class V92eb5ffe {。。。}这样的类定义了,
于是就报了“找不到myclass” 的错误了。
你有没有遇到过类似的zend 加密的问题, 请指教。 |
|