PHP SOAP fread () dynamische Größe POST
Frage
Suchen Sie die Dateigröße des SOAP-POST, best Practices zu lesen?
$data = fopen('php://input','rb');
$content = fread($data,5000);
$dom = new DOMDocument();
$dom->loadXML($content);
Möchten Sie die 5000 wie dynamisch zu sein wie jede SOAP POST Größe anders sein oder tut diese Angelegenheit?
Mit fread () wäre toll
Lösung
Umm. Wenn Sie es mit ‚fread
‘ lesen können, sehe ich keinen Grund, warum Sie nicht EXACT gleichen Text mit ‚file_get_contents()
‘ lesen können. Ich benutze dies ein paar Mal und Erinnern, die ich beide haben versuchen.
Was die beste Praxis für ‚fread
‘ geht, was Sie brauchen, ist die Dateigröße, die Sie es von getallheaders bekommen kann ().
Also, wenn Sie immer noch lieber mit hier 'fread
' der Code ist.
$data = fopen('php://input','rb');
$Headers = getallheaders();
$CLength = $Headers['Content-Length'];
$content = fread($data,$CLength);
$dom = new DOMDocument();
$dom->loadXML($content);
Der obige Code ist selbst erklärt, so gibt es keine Notwendigkeit für weitere Erklärung. Nur ein wenig zur Kenntnis, dass, wenn die Länge länger als 8192 Bytes der Inhalt wird abgeschnitten. So überprüfen Sie besser die Leselänge zu sehen, wenn es abgeschnitten. (Sie werden nicht Sorge sein müssen, wenn Sie ‚file_get_contents()
‘ verwenden obwohl).
Hope, das hilft
Andere Tipps
Sie könnten versuchen, die folgenden statt:
$xml = file_get_contents('php://input')
Damit werden alle Inhalte erhalten, unabhängig von der Länge der Daten.