Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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
PHP将soap请求写入文件_Php_Apache_Http_Http Headers - Fatal编程技术网

PHP将soap请求写入文件

PHP将soap请求写入文件,php,apache,http,http-headers,Php,Apache,Http,Http Headers,我试图做的是设置一个XAMPP apache,在其上创建一个脚本,一旦调用它,就将其写入一个文件: HTTP头属性 内容(类似主体的webservice XML等) 这似乎是一件小事,但似乎我无法通过谷歌找到解决方案。。。 非常感谢您的帮助,提前谢谢 <?php $request = ""; //printing headers foreach (getallheaders() as $name => $value) { $request.= "$name: $value\

我试图做的是设置一个XAMPP apache,在其上创建一个脚本,一旦调用它,就将其写入一个文件:

  • HTTP头属性
  • 内容(类似主体的webservice XML等)
这似乎是一件小事,但似乎我无法通过谷歌找到解决方案。。。 非常感谢您的帮助,提前谢谢

<?php
$request = "";
//printing headers
foreach (getallheaders() as $name => $value) {
   $request.= "$name: $value\n";
}
//printing body.. this part does not work any of it...
foreach ($_POST as $name => $value) {
   $request.= "$name: $value\n";
}
//$request.="++++++++++++++++++++++\n"
foreach ($_FILES as $name => $value) {
    $request.= "$name: $value\n";
    //$request.="++++++++++++++++++++++\n"
    foreach ($value as $name2 => $value2) {
        $request.= "$name2: $value2\n";
        //$request.="++++++++++++++++++++++\n"
    }
}
$request.=$_FILES['document.xml']['D:\Software\xampp\tmp\phpA521.tmp'];
$request.=@file_get_contents('php://input');
file_put_contents('result/'.date('Y-m-d H_i_s').'.log',$request);
?>

仅针对特定请求类型填充
$\u POST
变量。将
$\u POST
描述为:

在请求中使用application/x-www-form-urlencoded或multipart/form数据作为HTTP内容类型时,通过HTTP POST方法传递到当前脚本的变量的关联数组

在您的情况下,内容类型不同,应/将指定为:

Content-Type: application/soap+xml;
$\u文件
变量也有类似的限制。声明:

注意:
确保文件上载表单具有属性enctype=“multipart/form data”,否则文件上载将无法工作

全局
$\u文件
将包含所有上载的文件信息

要访问已发布的数据,请按照中的说明进行操作:

php://input
是一个只读流,允许您从请求正文中读取原始数据。在POST请求的情况下,最好使用
php://input

所以你可以这样做:

$postedData = file_get_contents('php://input');
然后可以将其解析为XML:

$xmlData = simplexml_load_string(trim($postedData)); 

我们应该帮你做什么?为你写代码?对不起,你是对的,我忘了邮寄,有什么问题吗?有错误吗?没有错误,只是没有内容。。。既不是帖子、文档,也不是附件您是否发出帖子请求?如果是这样,您能否显示您提交的表单的HTML代码?