从 C++、C#、Perl 或 Java 转换为 PHP


Converting from C++, C#, Perl, or Java to PHP

如以下链接所示,NCBI(国家生物技术信息中心)为C++,C#,Perl和Java中的生物信息学提供了一个小型但非常有用的SOAP客户端,但不幸的是,这个SOAP客户端没有PHP版本。

ftp://lucid.bic.nus.edu.sg/biomirrors/blast/web_services/

以下是Perl SOAP客户端的一部分,它帮助我们破坏基因序列:

    my $search_lite = SOAP::Data->value(
        SOAP::Data->name('options' => 
                         'SOAP::Data->value(
        SOAP::Data->name('Blast4-options-lite' =>
                         'SOAP::Data->name('task' => 'blastn'))
                         )))->uri(NCBI_XML_NAMESPACE);
    my $result = 
        $soap->call(SOAP::Data->name('Blast4-queue-search-request-lite')
                          ->uri(NCBI_XML_NAMESPACE)
                          => $search_lite);

我试图将其转换为PHP,但它不起作用。我还使用了这个准则:http://www.ncbi.nlm.nih.gov/books/NBK55699/

这是我的PHP代码:

try {
    $soapClient = new SoapClient($wsdlUrl);
    $result = $soapClient->SubmitSearchLite(array(
        //????
    ));
    echo $result;
}
catch {}

你能帮我解决它吗?

您是否考虑过使用 PHP/Java Bridge?它应该允许你通过Java使用Web服务,然后将你拥有的任何信息发送到你的PHP应用程序:

PHP/Java Bridge 是基于 XML 的流的实现。 网络协议,可用于连接本机脚本引擎, 例如PHP,Scheme或Python,带有Java虚拟机。是的 通过 SOAP 比本地 RPC 快 50 倍,需要更少的资源 在网络服务器端。它比直接更快、更可靠 通过 Java 原生接口进行通信,不需要 从 PHP 或 PHP 调用 Java 过程的其他组件 来自 Java 的过程。

如果 Web 服务中需要任何额外的更改,Web 服务和 PHP 应用程序之间的这个额外层将证明自己很有用,因为您很可能只需要弄乱 Java 层,保持 PHP 代码完整。

你知道PHP有自己的SOAP客户端,对吧?http://www.php.net/manual/en/class.soapclient.php