我正在尝试从php调用soap网络服务。
Web服务返回一个ADO.NET数据集结构。PHP中有没有可以处理这种数据结构的库?如果有,他们叫什么名字,在哪里可以找到他们?如果没有,随时给给予?
到目前为止,我有这个(使用ActiveMQ和NuSoap库):
/**
* Create a new service instance
* Provide ActiveMQ uri and the extended class name
**/
$client = new Client('tcp://localhost:61613?tcpNoDelay=false', 'test');
/**
* New service reference
**/
$service = new ServiceProxy($client, 'ServiceName');
/* Service call */
$result = $service->get_clients();
get_clients()是一个执行实际服务调用的方法,它获取数据集结构作为返回。如何操作这个返回值?
例如,在.NET中,有一个数据集类。ADO.NET数据集包含一个或多个ADO.NET数据表,这些数据表又由一个或多个ADO.NET数据列和数据列组成,这些数据列和数据列在集合(数组)中返回。
一个简单的代码示例,其中数据集只包含一个数据表,可以是:
/**
* Here, the val variable will contain the data positioned in the
* first field of the first DataRow of the first DataTable
**/
string val = dataset.Table[0].Rows[0].ItemArray[0];
我想在PHP中做同样的事情,但我需要帮助。
1条答案
按热度按时间8i9zcol21#
我建议你尝试更多地了解你正在处理的数据的结构。它很可能是某种形式的JSON或XML,可以通过大量的PHP xml和json处理库进行操作。
第一步是查看请求返回的数据并确定其格式。Microsoft将ADO.NET API的数据集以HERE的深度记录在MSDN库中。这应该有助于您在检查数据时理解所看到的内容。某些数据提供程序允许您以不同的格式访问相同的数据,具体取决于参数或类似函数族。您是否有提供商API的文档?
接下来,在您确定了数据集模式的格式和细节之后,您需要一个类来操作数据。如果你处理的是符合发布标准的东西,你可以使用simpleXML,JSON或DOMPlayer。这个类应该将数据存储在受保护的成员变量中,并提供检查,删除,加载,刷新,搜索等方法。您应该参考PHP手册的函数参考以获得帮助,并编写您需要的任何函数。我一般会编写它来处理任何类似的数据集,并派生一个类来公开特定应用程序所需的数据。
另一种方法是用.net语言编写一个COM组件来访问和操作数据,并通过PHP的COM扩展导入它的函数。我想我会去这个选择,如果数据格式是一个奇怪的专有微软之一。
第三种可能的方法只有在您对服务器具有编程访问权限时才有效。如果你能调整服务提供者以符合规范,微软已经发布了一个互操作性工具包,它应该充当.net服务和PHP客户端之间的桥梁,使用一层代理对象将ado.net数据公开给PHP脚本。他们经常使用RESTful这个词,但我真的不知道他们是什么意思。在Microsoft的互操作性总部查看PHP HERE的OData SDK(这里还有关于PHP和其他Microsoft平台和产品(如Azure,Silverlight,Bing等)的信息)。正如我所说的,我认为你需要数据提供者发出符合他们标准的数据。或许已经是了。没有模式我看不出来!如果是这样的话,这是你最好的选择。祝你好运!