PHP SOAP fread () dinamik POST boyutu

2 Cevap php

SOAP POST dosya boyutunu, en iyi yöntemler okumak için mi arıyorsunuz?

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

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

Her SABUN POST boyutu farklı olabilir ya da bu konuda yaptığı gibi 5000 dinamik olmak ister misiniz?

Fread () kullanarak harika olurdu

2 Cevap

Umm. Eğer bunu okuyabilir 'fread', sana 'file_get_contents()' ile özdeş aynı metni okuyamıyor hiçbir sebep göremiyorum. Bunu bir kaç kez kullanabilirsiniz ve ben de denemek ettik hatırlayarak.

Bildiğim kadarıyla için en iyi uygulama olarak 'fread' gider, ne size gereken getallheaders () elde edebilirsiniz dosya boyutu.

Hala kullanmayı tercih Yani, 'fread' burada kodudur.

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

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

Yukarıdaki kod kendini çok daha fazla açıklama için gerek yoktur açıklanmıştır. Uzunluğu ise longer than 8192 bytes içeriği kırpılmış olacağı biraz not. Yani daha iyi kısaltıldı görmek için okuma uzunluğunu kontrol. (Kullandığınız takdirde olsa 'file_get_contents()' endişe olması gerekmez).

Umarım bu yardımcı olur

Bunun yerine şunu deneyebilirsiniz:

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

Bu, hiçbir verinin uzunluğunu önemli, tüm içeriği alacak.