PHP Soap Server:使用字符串(xml字符串)而不是WSDL文件实例化(url to it)

Lig*_*ker 7 php string soap wsdl

Soap Server的PHP页面(我已经看过了):

http://www.php.net/manual/en/soapserver.soapserver.php

但是我错过了一个重要的缺乏文档,因为我自己的问题:

我需要知道是否可以使用XML字符串直接实例化服务器,就像SimpleXML类一样:

//From var (the one I want):
$movies = new SimpleXMLElement($xmlstr);
Run Code Online (Sandbox Code Playgroud)

要么

//From file and from string (the one I want):
$xml = simplexml_load_file('test.xml');

$xml = simplexml_load_string($string);
Run Code Online (Sandbox Code Playgroud)

所以我想做这样的事情:

$wsdl_cont = file_get_contents("../xmls/mywsdl.wsdl");
$server = new SoapServer($wsdl_cont);
Run Code Online (Sandbox Code Playgroud)

可能吗?

这样做的原因是,因为我有必须使用相同的XML一些不同的URL,所以我需要做一个模板URL飞一个替代,并将其更改为正确的,然后加载WSDL.但我不想在硬盘上保存即时生成的WSDL,以便在读取后立即将其删除.

是否有可能在PHP上创建某种"虚拟文件"并使用它,就像它是一个磁盘读取一样?某种流缓冲?还是某种文件描述符?

hak*_*kre 20

是的,可以通过从文件内容创建DATA URI并将其用作"文件".

$name = 'mywsdl.wsdl';
$path = '/path-to-file/'.$name;
$data = file_get_contents($path);
$file = 'data://text/plain;base64,'.base64_encode($data);
$server = new SoapServer($file);
Run Code Online (Sandbox Code Playgroud)

这应该做你想要的.一个相关的答案.