Question

Vous souhaitez lire la taille du fichier SOAP POST, quelles sont les meilleures pratiques?

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

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

Voudriez-vous que le 5000 soit dynamique car chaque taille de SOAP POST sera différente ou est-ce important?

Utiliser fread () serait génial

Était-ce utile?

La solution

Umm. Si vous pouvez le lire avec ' fread ', je ne vois aucune raison pour que vous ne puissiez pas lire EXACT le même texte avec ' file_get_contents () '. Je l’utilise plusieurs fois et je me rappelle que j’ai essayé les deux.

Pour ce qui est de la meilleure pratique pour ' fread ", vous avez besoin de la taille du fichier que vous pouvez obtenir de getallheaders ().

Donc, si vous préférez toujours utiliser ' fread ', voici le code.

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

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

Le code ci-dessus est auto-explicité, vous n'avez donc pas besoin d'explications supplémentaires. Juste un petit peu noter que si la longueur est plus de 8192 octets le contenu sera coupé. Vous feriez donc mieux de vérifier la longueur de lecture pour voir si elle est coupée. (Vous n'aurez pas à vous inquiéter si vous utilisez ' file_get_contents () ' cependant).

J'espère que cela vous aidera

Autres conseils

Vous pouvez plutôt essayer ce qui suit:

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

Ceci obtiendra tout le contenu, quelle que soit la longueur des données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top