1

SOAP POST のファイル サイズを確認したいのですが、ベスト プラクティスはありますか?

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

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

各 SOAP POST サイズが異なるため、5000 を動的にしたいですか、それとも問題ですか?

fread() を使用すると素晴らしいでしょう

4

2 に答える 2

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 に答える
2

代わりに次のことを試すことができます。

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

これにより、データの長さに関係なく、すべてのコンテンツが取得されます。

于 2009-09-10T14:08:59.880 に答える