spfalz / tnsparser
用于解析Oracle TNS文件(tnsnames.ora)的类。
1.0.1
2018-06-17 10:46 UTC
Requires
- php: >=5.3.0||^7.0
This package is auto-updated.
Last update: 2024-09-24 04:49:26 UTC
README
最后更新于 2016-06-02
简介
这个类是为了轻松解析Oracle TNS文件而构建的,主要为了我自己的OIS2应用程序能够自动检测TNS名称。它遵循BSD许可协议,所以你可以随意使用它,但请保留版权声明,谢谢!
这个类接收一个tnsnames.ora文件,将其解析到所有组件,并返回一个关联数组,包含所有解析数据,通过TNS名称索引。
由于TNS名称内部可能指定了多个组件,因此返回的数组值也是数组。以下是一个结果数组的示例
Array
(
[ORADEV] => Array
(
[PROTOCOL] => Array
(
[0] => TCP
)
[HOST] => Array
(
[0] => 192.168.255.2
)
[PORT] => Array
(
[0] => 1521
)
[SERVER] => Array
(
[0] => DEDICATED
)
[SERVICE_NAME] => Array
(
[0] => ORADEV.LOCAL
)
)
)
这是以下原始TNS条目的解析结果
ORADEV =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.255.2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADEV.LOCAL)
)
)
这个发行版提供了一个从Oracle文档中取出的示例,包含多个主机指定,因此你可以确切地看到这一切是如何工作的。
用法
使用很简单,从类中创建一个新的实例,并使用包含你的Oracle tnsnames.ora文件路径的公共方法 "ParseTNS()",即
$TNS = new TNSParser;
$rc = $TNS->ParseTNS('/opt/oracle/product/11.2/network/admin/tnsnames.ora');
print_r($rc);
如果发生错误,该方法会抛出异常,因此你应该使用try/catch块来处理错误。
结语
我已经成功测试了这个类与多个不同且相对复杂的TNSnames文件,然而,没有任何软件是完全没有错误的,所以如果你发现错误或对这个类有改进的想法,你可以自己修改,或者可以自由地在我的主页上联系我,主页地址如下
没有更多要说的了,我怀疑没有人会真正看到这个文件的最后,所以继续编码吧:D