POST経由で送信されたXML文書を処理するために何かを書く必要があります。この文書にはbase-64でエンコードされたバイナリが入っているため、要求がかなり大きくなる可能性があります。Zend Diactoros PhpInputStream(PSR-7 StreamInterface)で囲まれたストリームをfopenのような関数に渡す?
$document = simplexml_load_file('php://input');
しかし、私は本当に私はこのような何かやるべきそうZendのDiactoros PSR-7の実装を使用しています:
これは動作しますが
$request = Zend\Diactoros\ServerRequestFactory::fromGlobals();
$document = simplexml_load_file($request->getBody());
、する流れを引き起こし文字列にキャストするとエラーになります。ので
$document = simplexml_load_file($request->getBody()->stream);
::私は本当に必要なもの
のようなものです
var_dump($request->getBody());
object(Zend\Diactoros\PhpInputStream)#5 (4) {
["cache":"Zend\Diactoros\PhpInputStream":private] => string(0) ""
["reachedEof":"Zend\Diactoros\PhpInputStream":private ] => bool(false)
["resource":protected] => resource(4) of type (stream)
["stream":protected] => string(11) "php://input"
}
しかし、ノート->stream
は保護されています。私はちょうどZend\Diactoros\PhpInputStream
を広げて->stream
を公開する公開方法を書くべきですか?それとも良い方法がありますか?
に注意してください。私は、ストリームベースのソリューションを探しています。ストリーム全体を文字列としてメモリに読み込まないようにします。