ZendChina | Zend中文权威资讯's Archiver

ZendChina 发表于 2007-12-26 19:41

Zend Guard 5.0 API

       ZendChina官方:为了方便用户在字符终端下,对PHP文件进行加密及相关操作。所以我整理出Zend Guard 5.0 最新版本的API手册,对于其中一些新添加的函数,我将进行详细的介绍。

使用Zend Guard API ,您可以完成下列任务:
[list][*]检查Zend Optimizer 是否可以处理加密后的文件。[*]检查是否存在一个有效的许可,如果存在则可以从授权中得到详细信息。[*]在运行时获得运行文件的路径。[/list]
下列API描述了Zend Guard如何来决定是否激活加密功能的:
[b]名称: zend_loader_enabled[/b]
说明:  检查 Zend Optimizer是否配置正确来加载加密文件。
             注意:Zend Optimizer的相关设置可以在php.ini文件里配置,语法如下:
             zend_optimizer.enable_loader = on|off
             默认情况下设置是on,因此,你在用Optimizer运行加密文件时不需要作任何修改。
语法:  zend_loader_enabled()
结果:  返回布尔值
             TRUE 表示Optimizer配置可以正常运行加密文件
             FALSE表示Optimizer配置无法运行加密文件

[b]名称: zend_get_id[/b]
说明:   返回主机ID的数组。 如果all_ids的值是true,则返回所有的ID,否则仅返回认定的‘主’ID。
语法:   array zend_get_id([bool all_ids = false])

下列API描述 Zend Guard 是如何检查是否存在一个有效的许可:
[b]名称:  zend_loader_file_licensed[/b]
说明:   把运行文件的签名与通过php.ini加载的许可文件中的签名进行比较来进行许可注册。如果一个有效的许可文件存在,则授权文件的值将传入一个数组。如果有效的许可不存在或者没有在php.ini没有正确指定,将无法在该PHP服务器上许可注册。如果许可文件存在,但是存放目录无法与产品和签名匹配,返回数组将不会创建。
如果在php.ini指定的目录里存在对应于产品有效的授权,将返回一个数组。数组包含授权文件中的每一行无素,包括授权的基本信息和额外增加的信息。
想要了解关于许可文件的正确安装及需要php.ini的路径,请查看Limit the Number of Concurrent章节。
用户正确的Cookie使用:当"需要cookies"选项没有被选择,任何页面都可以被加载,一旦选择,同时访问的浏览器的数量甚至并发用户数受将到限制。 (甚至只有一个使用者)
出现这种情况的原因,是第一次访问网页时没有储存cookie。第二次再访问该页面时,这个cookies 是不存在的(即使不是必须的)。所以服务器将限制用户访问。
此外,如果"需要cookies "选项没有被选择,以及浏览器设置为不接收cookies ,无论有到少浏览器,任何页面都能够被无数次的加载。
出现这种情况的原因是因为在任何时候cookie都不存在。服务器没有办法知道该页面已被访问。为了有效地限制同时在线用户数量,你必须选择”需要cookies”。
语法:    $lic_info = zend_loader_file_licensed()
结果:    返回一个数组或一个FLASE数组。
               如果返回一个数组,则在本机上存在一个有效的许可,这个许可的位置在php.ini中指出并适用于这个产品。数组中每一个元素为一个许可文件的每一行。这包括了生成许可的设置及所有附加的用户信息。我们以一个许可证文件举例说明:
例如许可文件中的一行 Product-Name = My Product 返回数组中的索引是授权文件中每一行等号左边的内容(Product-Name),返回数组的值是等号右边的内容(My Product)。FALSE说明有效的许可没有找到。这说明在许可文件目录里没有许可文件,或者许可文件存在,但是无效。

[b]名称:   zend_loader_install_license[/b]
说明:    动态地为用Zend Guard加密的应用程序加载一个授权。是否加Override参数将控制是否使同一个产品的较老版本的许可文件无效。
语法:    boolean zend_loader_install_license(string license_file[, bool override])

下列API描述Zend Guard如何检查混淆:
[b]名称:   zend_loader_current_file[/b]
说明:    获得当前运行文件的所有完整路径,换句话说,这个API函数调用的文件的路径。
不计算运行文件加密时的路径,只计算运行的时间。
语法:    zend_loader_current_file()
结果:    返回一个包含当前运行文件的完整路径的字符串。

[b]名称:   Zend_obfuscate_function_name[/b]
说明:    用内置的混淆功能模糊处理指定的函数名并返回值。
语法:    string obfuscate_function_name(string function_name)
结果:    返回给定字符串混淆后的形式。

[b]名称:   Zend_obfuscate_class_name[/b]
说明:    用内置的混淆功能模糊处理指定的类名并返回值。
语法:    string obfuscate_class_name(string class_name)
结果:    返回指定类名混淆后的形式。

[b]名称:   zend_loader_file_encoded[/b]
语法:    boolean zend_loader_file_encoded()
结果:    如果当前文件是一个加密文件返回TRUE,否则返回FLASE。

[b]名称:   zend_current_obfuscation_level[/b]
语法:    int zend_current_obfuscation_level()
结果:    返回当前支持的混淆级别。

[b]名称:   zend_runtime_obfuscate[/b]
语法:    bool zend_runtime_obfuscate()
结果:    对运行混淆后代码的支持,可以限制混淆后的和没有混淆代码的混合

[align=left][color=#ff0000]ZendChina官方资讯,转载请以链接形式注名来源:[/color][url=http://www.zendchina.net/][color=#ff0000]ZendChina[/color][/url][color=#ff0000] - [/color][url=http://bbs.zendchina.net/thread-64-1-1.html][color=#ff0000]Zend Guard 5.0 API[/color][/url][/align]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.