2012-04-03 15 views
13

veya bir "x-www-form-urlencoded" POST talebi, parantez ile adlandırma ile parametre dizisi belirlemek mümkündür (örneğin, "ad []"). nasıl çok parçalı/form-veri kodlama ile bir dizi gönderilir? GET parametresi dizesi

bir "çok parçalı/form-data" POST isteği ile parametrelerin bir dizi belirtmek için "doğru" (veya en azından bir yaygın kongre) yolu var mı?

şu doğru olur mu?

Content-Type: multipart/form-data; boundary=--abc 

--abc 
Content-Disposition: form-data; name="name[]" 

first index 
--abc 
Content-Disposition: form-data; name="name[]" 

second index 

Platforma göre değişirse, Apache/PHP sözleşmesiyle ilgileniyorum. Eğer ilişkili bir dizi istiyorsanız

cevap

15

Bir form alanına bir isim indeksi geçirebilirsiniz:

Content-Type: multipart/form-data; boundary=--abc 

--abc 
Content-Disposition: form-data; name="name[first]" 

first value 
--abc 
Content-Disposition: form-data; name="name[second]" 

second value 

Sonra php seviye print_r ($ _ POST) size

Array ([name] => Array ([first] => 'first value', [second] => 'second value'))

verecekti

Normal sıralı bir diziden sonra, yaptığınız gibi aynıysa:

Content-Type: multipart/form-data; boundary=--abc 

--abc 
Content-Disposition: form-data; name="name[]" 

first index 
--abc 
Content-Disposition: form-data; name="name[]" 

second index 

Sonra php seviyesi print_r üzerinde ($ _ POST) size PHP özgü bir özellik [] Bir sunucu tarafında diziler haline çeviren adlarında ile

Array ([name] => Array ([0] => 'first index', [1] => 'second index'))

PARAMS edilir verecekti (http://www.php.net/manual/en/faq.html.php#faq.html.arrays).

çok parçalı kodlama gelince sen RFC daha bulabilirsiniz: http://www.ietf.org/rfc/rfc1867.txt

+1

Teşekkür Alexei. Bunu tanımlayan herhangi bir spesifikasyona veya belgeye referans var mı? Özellikle bir multipart POST standart urlencoded bir vs ile ilgili olarak? – DougW

+1

Ben kesinlikle sirke seçici burada oluyorum –

+0

yanıta bağlantıların çift ekledik ama PHP dokümanlar yalnızca daima x-www aracılığıyla POST web formları bakımından bu sözleşmeye söz olduğunu işaret etmek istiyorum form-urlencoded. Ben * zaman POST değişkenleri içerik türleri arasında bir fark olmadığını PHP Apache'den kapalı teslim almak olduğunu * tahmin ediyorum, ama aslında teyit şey okumadım. Ve elbette, PHP hakkında felaketle yanlış bir şekilde ortaya çıkan, görünüşte güvenli birçok varsayım var. Bunu doğruladığımdan emin olacağım. – DougW

İlgili konular