downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

http_get_request_headers> <http_get_request_body_stream
[edit] Last updated: Fri, 23 Mar 2012

view this page in

http_get_request_body

(PECL pecl_http >= 0.10.0)

http_get_request_bodyİstek gövdesini bir dizge olarak döndürür

Açıklama

string http_get_request_body ( void )

Ham istek gövdesi ile döner (yani, POST veya PUT verisi).

İstek yöntemi POST değilse bu işlev http_get_request_body_stream() işlevinden sonra kullanılamaz.

Değiştirgeler

Dönen Değerler

Başarı durumunda ham istek verisini bir dizge olarak döndürür. Başarısızlık durumunda NULL döner.

Ayrıca Bakınız



http_get_request_headers> <http_get_request_body_stream
[edit] Last updated: Fri, 23 Mar 2012
 
add a note add a note User Contributed Notes http_get_request_body
Tim Trinidad 27-May-2010 11:03
It seems that there is some weird behavior when using http_get_request_body() with fopen('php://input'). Specifically, reading the input with the fopen('php://input') routine before calling http_get_request_body() on a PUT HTTP request.

Here are some examples:

A POST request:
*********************************************************
PUT http://example.com/requestbodytest.php HTTP/1.1
Host: example.com
Keep-Alive: 300
Connection: keep-alive
Content-Type: text/xml
Content-Length: 58

<?xml version="1.0" encoding="utf-8" ?>
<body>test</body>
*********************************************************

with the following script:
*********************************************************
<?php
$body
= '';
$fh   = @fopen('php://input', 'r');
if (
$fh)
{
  while (!
feof($fh))
  {
   
$s = fread($fh, 1024);
    if (
is_string($s))
    {
     
$body .= $s;
    }
  }
 
fclose($fh);
}
print(
"-------------- PHP Input Stream ----------------\n$body\n\n");

$body2 = http_get_request_body();
print(
"---------- http_get_request_body() -------------\n$body2\n\n");

?>
*********************************************************

outputs this:
*********************************************************
-------------- PHP Input Stream ----------------
<?xml version="1.0" encoding="utf-8" ?>
<body>test</body>

---------- http_get_request_body() -------------
<?xml version="1.0" encoding="utf-8" ?>
<body>test</body>
*********************************************************

The same request to the same script using an HTTP PUT request, however, outputs this:
*********************************************************
-------------- PHP Input Stream ----------------
<?xml version="1.0" encoding="utf-8" ?>
<body>test</body>

---------- http_get_request_body() -------------
*********************************************************

It seems a valid workaround is to put a call to http_get_request_body() to cache the body content before an expected read to php://input (i.e. simply calling the function without manually storing the result caches the content for subsequent calls).
neil at foo dot co dot za 28-Feb-2008 06:40
Like php://input and http_get_request_body_stream(), http_get_request_body() doesn't seem to work with enctype="multipart/form-data".
osborn dot steven at gmail dot com 23-Aug-2007 05:01
For those of you without the HTTP extension, try:
<?php
  $body
= @file_get_contents('php://input');
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites