SOAP POST のファイル サイズを確認したいのですが、ベスト プラクティスはありますか?
$data = fopen('php://input','rb');
$content = fread($data,5000);
$dom = new DOMDocument();
$dom->loadXML($content);
各 SOAP POST サイズが異なるため、5000 を動的にしたいですか、それとも問題ですか?
fread() を使用すると素晴らしいでしょう
うーん。「 」で読めるなら、「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()
)。
お役に立てれば
代わりに次のことを試すことができます。
$xml = file_get_contents('php://input')
これにより、データの長さに関係なく、すべてのコンテンツが取得されます。