Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用apache2将xml发布到php_Php_Xml_Apache - Fatal编程技术网

使用apache2将xml发布到php

使用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上运行它,这样我就可以避免“构建映像、在产品上安装、重新启动

我正在开发一个应用程序,它通过POST接收XML数据,用PHP脚本处理数据,然后返回XML响应

我使用以下PHP代码获取XML:

$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

嗯,,
凯文

谢谢你抽出时间回答我的问题。唉,那家公司已经不复存在了,至少对我来说,这个问题现在还没有定论。