SOAP-ERROR:解析WSDL:can';无法从本地文件加载

SOAP-ERROR:解析WSDL:can';无法从本地文件加载,soap,wsdl,Soap,Wsdl,我有一个WSDL文件,它位于我的服务器中,我在SoapClient中经常使用这个文件 $client = new \SoapClient(dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$url, array( 'connection_timeout' => 180, 'verifypeer' => false, 'verifyhost'

我有一个WSDL文件,它位于我的服务器中,我在SoapClient中经常使用这个文件

$client = new \SoapClient(dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$url, array(
            'connection_timeout' => 180,
            'verifypeer'         => false,
            'verifyhost'         => false,
            'soap_version'       => SOAP_1_2,
            'stream_context'     => stream_context_create(['ssl' => [
                'verify_peer'       => FALSE,
                'verify_peer_name'  => FALSE,
                'allow_self_signed' => TRUE
            ]])
        ));
它按预期工作,但有时它仍然给我这个错误

SOAP-ERROR:解析WSDL:无法从“/var/www/public\u html/laravel/app/Classes/orders\u internal.WSDL”加载:未能加载外部实体“/var/www/public\u html/laravel/app/Classes/orders\u internal.WSDL”

直到我重新启动服务器,它才会恢复工作

你知道我错过了什么吗


关于

我也有这个问题。我有一个流程,其中我必须对一个soap api进行5次不同的调用(在同一执行中)

只有最后一次呼叫出现错误:

SOAP-ERROR: Parsing WSDL: Couldn't load from /var/www/html/SomFile.wsdl failed to load external entity.
在上次调用之前,我意识到禁用加载外部实体是一种逻辑:

libxml_disable_entity_loader(true);
确保没有逻辑禁止在代码的某些部分加载外部实体

请务必注意,libxml_disable_entity_loader()将被弃用:

警告

This function has been DEPRECATED as of PHP 8.0.0. Relying on this function is highly discouraged.

我似乎在使用本地WSDL文件时遇到了这个问题。你设法解决了吗@Mohammed Taha?