使用apache2将xml发布到php
我正在开发一个应用程序,它通过POST接收XML数据,用PHP脚本处理数据,然后返回XML响应 我使用以下PHP代码获取XML:使用apache2将xml发布到php,php,xml,apache,Php,Xml,Apache,我正在开发一个应用程序,它通过POST接收XML数据,用PHP脚本处理数据,然后返回XML响应 我使用以下PHP代码获取XML: $requestStr = file_get_contents('php://input'); $requests = simplexml_load_string($requestStr); 它在使用nginx作为服务器的基于Linux的产品硬件上运行良好 然而,对于测试,我希望能够在MacBook Pro上运行它,这样我就可以避免“构建映像、在产品上安装、重新启动
$requestStr = file_get_contents('php://input');
$requests = simplexml_load_string($requestStr);
它在使用nginx作为服务器的基于Linux的产品硬件上运行良好
然而,对于测试,我希望能够在MacBook Pro上运行它,这样我就可以避免“构建映像、在产品上安装、重新启动产品、等待、测试更改”循环,同时在这个XML处理器上进行有针对性的开发
我启用了启动Apache的“web共享”,添加了一个重写规则,将一个方便的URI指向我的开发源目录,并使用curl向我的PHP脚本发送请求,因此:
curl -H "Content-Type:text/xml" -d @request.xml http://localhost/test/path/testscript
PHP脚本可以很好地处理“testscript”,但是当它读取“PHP:://input”
时,我什么也没有得到——空字符串
有人知道为什么这在Linux和nginx下工作,而不是在MacOS和Apache下工作吗
我在谷歌上搜索了stackoverlow.com,但没有结果。谢谢你的回答
更新:
我发现,至少在这个配置中,从php://stdin 在
php://input
将不会。谁知道呢?不熟悉nginx或MacOS,但对于FreeBSD/Apache,您可以尝试另一种方法:
$xml_in=$GLOBALS[“HTTP_RAW_POST_DATA”]
您还必须将其添加到.htaccess:
php\u值始终\u填充\u原始\u发布\u数据1
嗯,,
凯文谢谢你抽出时间回答我的问题。唉,那家公司已经不复存在了,至少对我来说,这个问题现在还没有定论。