Nasıl vücut almak için php bir POST?
Ben bir php sayfasına aşağıdaki YAZI gönderin
{a:1}
Bu isteğinin gövdesi (YAZI isteği).
Php, ben de böyle bir değer elde ne var?
var_dump($_POST);
çözüm, işçi değil.
CEVAP
Bir yazının varlık gövdesini erişim veya isteği (veya başka bir HTTP yöntemi) KOYMAK için:
$entityBody = file_get_contents('php://input');
Ayrıca, STDIN sürekli alternatif olarak yapabilirsin yani 9**, zaten açık bir akış
$entityBody = stream_get_contents(STDIN);
PHP manual entry on I/O streamsdocs:
://giriş phpham veri okuma sağlayan salt okunur bir akış. istek bedenden. POST istekleri halinde tercih edilir kullanmak için://giriş php
$HTTP_RAW_POST_DATAyerine değil özel php bağlıdır.ını direktifleri. Ayrıca, bu durum için nereye$HTTP_RAW_POST_DATAvarsayılan olarak doldurulur, bu bir potansiyel olarak değil daha az yoğun bellek alternatif etkinleştirme always_populate_raw_post_data.://giriş phpmevcut değildir. şifre türü="çok parçalı/-veri formu".
Özellikle dikkat etmek isteyeceksiniz php://input akışı, bir web SAPI erişmek nasıl olursa olsun,değil aranabilir. Bu sadece bir kez okunabilir anlamına gelir. Eğer büyük HTTP varlık organları rutin karşıya olduğu bir ortamda çalışıyorsanız stream haliyle giriş (yerine ilk örnek gibi yukarıda arabelleği) korumak isteyebilirsiniz.
Bu gibi stream kaynak bir şey korumak için yararlı olabilir:
<?php
function detectRequestBody() {
$rawInput = fopen('php://input', 'r');
$tempStream = fopen('php://temp', 'r ');
stream_copy_to_stream($rawInput, $tempStream);
rewind($tempStream);
return $tempStream;
}
php://temp veri belirli bir miktar (varsayılan 2) depolanır sonra şeffaf dosya sistemi depolama anahtarı olacak, çünkü bellek tüketimini yönetmenize izin verir. Bu boyut php manipüle edilebilir.dosya veya NN en fazla miktarda veri bellekte tutmak için bir geçici dosya kullanmadan önce nerede /maxmemory:NN, bayt cinsinden ekleyerek ını.
Giriş akışı üzerinde arayanlar için gerçekten iyi bir nedeniniz yoksa elbette, bir web uygulama bu işlevselliği gerekmez. HTTP isteği varlık vücut sonra genellikle yeterli -- okuma uygulaması ne rakamlar ise müşterileri bekliyor bütün gün devam yok.
://Giriş php unutmayın istekleri Content-Type: multipart/form-data başlıkenctype="multipart/form-data" HTML formları) belirtmek için kullanılabilir değil. Bu PHP zaten $_POST superglobal içine form verilerini ayrıştırılmış sahip olur.

Nasıl cross-origin resource sharing (C...
nasıl ALMAK ve JQuery ile POST değişke...
Nasıl vücut'in içeriğini almak iç...
Nasıl Python ile şimdiki zaman almak i...
Nasıl bir liste boyutunu almak için...