SORU
20 Ocak 2012, Cuma


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
20 Ocak 2012, Cuma


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_DATA yerine değil özel php bağlıdır.ını direktifleri. Ayrıca, bu durum için nereye $HTTP_RAW_POST_DATA varsayı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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boburnham

    boburnham

    11 Temmuz 2006
  • New Scientist

    New Scientis

    27 Kasım 2006
  • Ty Moss

    Ty Moss

    20 Kasım 2007