PHP SOAP FREAD()动态POST大小(PHP SOAP fread() dynamic

2019-10-17 13:06发布

展望阅读SOAP POST,任何最佳实践文件的大小?

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

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

希望5000是动态的,因为每个SOAP POST大小会有所不同或做这件事情?

使用FREAD()将是巨大的

Answer 1:

嗯。 如果你可以用“读它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() ”虽然)。

希望这可以帮助



Answer 2:

你可以尝试,而不是执行以下操作:

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

这将让所有的内容,无论是数据的长度。



文章来源: PHP SOAP fread() dynamic POST size