Domanda

Stai cercando di leggere la dimensione del file del POST DI SAPONE, qualche best practice?

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

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

Vorresti che il 5000 fosse dinamico poiché ogni dimensione di POST DI SAPONE sarà diversa o è importante?

L'uso di fread () sarebbe fantastico

È stato utile?

Soluzione

Umm. Se riesci a leggerlo con ' fread ', non vedo alcun motivo per cui non puoi leggere lo stesso testo EXACT con ' file_get_contents () '. Lo uso alcune volte e ricordando che ho provato entrambi.

Per quanto riguarda la migliore pratica per ' fread ', ciò di cui hai bisogno è la dimensione del file che puoi ottenere da getallheaders ().

Quindi, se preferisci ancora usare ' fread ' ecco il codice.

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

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

Il codice sopra è autoesplicato, quindi non sono necessarie ulteriori spiegazioni. Nota solo che se la lunghezza è più lunga di 8192 byte il contenuto verrà ritagliato. Quindi è meglio controllare la lunghezza di lettura per vedere se è troncata. (Non dovrai preoccuparti se usi " file_get_contents () ")

Spero che questo aiuti

Altri suggerimenti

Puoi invece provare quanto segue:

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

Verranno visualizzati tutti i contenuti, indipendentemente dalla lunghezza dei dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top