1

想要阅读 SOAP POST 的文件大小,有什么最佳实践吗?

$data = fopen('php://input','rb');
$content = fread($data,5000);

$dom = new DOMDocument();
$dom->loadXML($content);

希望 5000 是动态的,因为每个 SOAP POST 大小都会不同,或者这有关系吗?

使用 fread() 会很棒

4

2 回答 2

2

您可以尝试以下方法:

$xml = file_get_contents('php://input')

这将获取所有内容,无论数据的长度如何。

于 2009-09-10T14:08:59.880 回答
2

嗯。如果你可以用“ fread”阅读它,我认为你没有理由不能用“”阅读完全相同的文本file_get_contents()。我用了几次,记得我都试过了。

就 ' fread' 的最佳实践而言,您需要的是可以从 getallheaders() 获取的文件大小。

所以,如果你仍然喜欢使用 ' fread' 这里是代码。

$data = fopen('php://input','rb');
$Headers = getallheaders();
$CLength  = $Headers['Content-Length'];
$content = fread($data,$CLength);

$dom = new DOMDocument();
$dom->loadXML($content);

上面的代码是自我解释的,所以不需要进一步解释。请注意,如果长度超过 8192 字节,内容将被剪裁。所以你最好检查读取长度,看看它是否被剪裁。(不过,如果您使用 ' ',则无需担心file_get_contents())。

希望这可以帮助

于 2009-10-17T12:37:34.890 回答