導航:首頁 > 編程語言 > php中的request

php中的request

發布時間:2022-06-09 21:41:24

php中使用$_REQUEST需要注意的一個問題

問題
說起$_REQUEST,大家都知道的是它是$_GET和$_POST的集合。但是如果你有心的話,查一下文檔,會看到:
$_REQUEST
An
associative
array
that
by
default
contains
the
contents
of
$_GET,
$_POST
and
$_COOKIE.
這里說$_REQUEST默認是$_GET,
$_POST,
$_COOKIE的集合,結果我使用我本地的php查看了一下發現只有$_GET,
$_POST,
沒有$_COOKIE!!
難道文檔是錯的?

答案
其實changelog中有給出解釋:
版本5.3以上,php.ini中有request_order屬性來設置$_REQUEST。查了下php.ini,
request_order設置成為了GP(Get
and
Post)。

request_order的官網描述:
request_order
string
This
directive
describes
the
order
in
which
PHP
registers
GET,
POST
and
Cookie
variables
into
the
_REQUEST
array.
Registration
is
done
from
left
to
right,
newer
values
override
older
values.
If
this
directive
is
not
set,
variables_order
is
used
for
$_REQUEST
contents.
Note
that
the
default
distribution
php.ini
files
does
not
contain
the
'C'
for
cookies,
e
to
security
concerns.

原來是G,P,C分別代表Get,Post,Cookie,5.3以上的版本request_order默認是設置成GP的,並不包含C,即$_REQUEST默認只包含$_GET和$_POST
!!
(所以官網文檔有一定的誤導)。

也同時說一下G,P,C的先後順序就是設置的array的覆蓋順序。
提醒下如果你是使用fpm-php實驗的話,改了php.ini後你需要重啟php-fpm

㈡ php實現httpRequest的方法

這篇文章主要介紹了php實現httpRequest的方法,涉及php操作http的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php實現httpRequest的方法。分享給大家供大家參考。具體如下:
想從學校圖書館的網站上抓取數據處理之後在返回給瀏覽器,試了不少方法。首先試了http_request(),但是這個學院pecl_http支持,後來又試了網上流傳甚廣的class
HttpRequest,可能是我不會使用,也失敗了。後來看到了函數httpRequest($url,
$post='',
$method='GET',
$limit=0,
$returnHeader=FALSE,
$cookie='',
$bysocket=FALSE,
$ip='',
$timeout=15,
$block=TRUE),用它成功了,因此貼出來分享一下。函數代碼如下:
代碼如下:
<?php
/**
*
Respose
A
Http
Request
*
*
@param
string
$url
*
@param
array
$post
*
@param
string
$method
*
@param
bool
$returnHeader
*
@param
string
$cookie
*
@param
bool
$bysocket
*
@param
string
$ip
*
@param
integer
$timeout
*
@param
bool
$block
*
@return
string
Response
*/
function
httpRequest($url,$post='',$method='GET',$limit=0,$returnHeader=FALSE,$cookie='',$bysocket=FALSE,$ip='',$timeout=15,$block=TRUE)
{
$return
=
'';
$matches
=
parse_url($url);
!isset($matches['host'])
&&
$matches['host']
=
'';
!isset($matches['path'])
&&
$matches['path']
=
'';
!isset($matches['query'])
&&
$matches['query']
=
'';
!isset($matches['port'])
&&
$matches['port']
=
'';
$host
=
$matches['host'];
$path
=
$matches['path']
?
$matches['path'].($matches['query']
?
'?'.$matches['query']
:
'')
:
'/';
$port
=
!empty($matches['port'])
?
$matches['port']
:
80;
if(strtolower($method)
==
'post')
{
$post
=
(is_array($post)
and
!empty($post))
?
http_build_query($post)
:
$post;
$out
=
"POST
$path
HTTP/1.0rn";
$out
.=
"Accept:
*/*rn";
//$out
.=
"Referer:
$boarrlrn";
$out
.=
"Accept-Language:
zh-cnrn";
$out
.=
"Content-Type:
application/x-www-form-urlencodedrn";
$out
.=
"User-Agent:
$_SERVER[HTTP_USER_AGENT]rn";
$out
.=
"Host:
$hostrn";
$out
.=
'Content-Length:
'.strlen($post)."rn";
$out
.=
"Connection:
Closern";
$out
.=
"Cache-Control:
no-cachern";
$out
.=
"Cookie:
$cookiernrn";
$out
.=
$post;
}
else
{
$out
=
"GET
$path
HTTP/1.0rn";
$out
.=
"Accept:
*/*rn";
//$out
.=
"Referer:
$boarrlrn";
$out
.=
"Accept-Language:
zh-cnrn";
$out
.=
"User-Agent:
$_SERVER[HTTP_USER_AGENT]rn";
$out
.=
"Host:
$hostrn";
$out
.=
"Connection:
Closern";
$out
.=
"Cookie:
$cookiernrn";
}
$fp
=
fsockopen(($ip
?
$ip
:
$host),
$port,
$errno,
$errstr,
$timeout);
if(!$fp)
return
'';
else
{
$header
=
$content
=
'';
stream_set_blocking($fp,
$block);
stream_set_timeout($fp,
$timeout);
fwrite($fp,
$out);
$status
=
stream_get_meta_data($fp);
if(!$status['timed_out'])
{//未超時
while
(!feof($fp))
{
$header
.=
$h
=
fgets($fp);
if($h
&&
($h
==
"rn"
||
$h
==
"n"))
break;
}
$stop
=
false;
while(!feof($fp)
&&
!$stop)
{
$data
=
fread($fp,
($limit
==
0
||
$limit
>
8192
?
8192
:
$limit));
$content
.=
$data;
if($limit)
{
$limit
-=
strlen($data);
$stop
=
$limit
<=
0;
}
}
}
fclose($fp);
return
$returnHeader
?
array($header,$content)
:
$content;
}
}
?>

調用也很簡單的。簡單的例子:
代碼如下:
echo
httpRequest('http://www..com');

希望本文所述對大家的php程序設計有所幫助。

㈢ php中的request數據接收

PHP中運算符的變數名寫錯了。不執行卻是下載的原因是:需要將文件存儲到伺服器指定的路徑中才能執行,如APACHE伺服器的htdocs文件夾

㈣ php中的$_REQUEST()函數怎麼用

php中有$_request與$_post、$_get用於接受表單數據,當時他們有何種區別,什麼時候用那種最好。

一、$_request與$_post、$_get的區別和特點

$_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比較慢。通過post和get方法提交的所有數據都可以通過$_REQUEST數組獲得

二、$_post、$_get的區別和特點

1. get是從伺服器上獲取數據,post是向伺服器傳送數據。
2. get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的數據。
4. get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。

舉例:mypage?id=1這種就是GET方式傳值,可以用$_request和$_get接受傳值。

㈤ php request 怎麼使用

你說的是用來接收表單數據的?用法比如你表單的name ="txt"那麼接收這個表單內容用$_REQUEST["txt"]來接收,$_REQUEST可以接收post和get的數據。當然並不建議這樣做,建議區分開來。畢竟REQUEST沒有post和get的執行速度快

㈥ php中get和request的區別

PHP中有$_REQUEST與$_POST、$_GET用於接受表單數據。
一、$_REQUEST與$_POST、$_GET的區別和特點
$_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比較慢。通過POST和GET方法提交的所有數據都可以通過$_REQUEST數組獲得。
二、$_POST、$_GET的區別和特點
1. GET是從伺服器上獲取數據,POST是向伺服器傳送數據。
2. GET是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對於GET方式提交表單數據,伺服器端用$_GET[『name』]獲取變數的值,對於POST方式提交表單數據,伺服器端用$_POST[『name』]獲取提交的數據,當然,兩者都可以通過$_REQUEST[『name』]獲得表單數據。對於REQUEST方式提交表單數據,伺服器端用$_REQUEST[『name』]獲取變數的值,但這種方式很少用。
4. GET傳送的數據量較小,不能大於2KB。POST傳送的數據量較大,一般被默認為不受限制。但理論上,一般認為不能超過100KB。
5. GET安全性非常低,POST安全性較高。
6. GET表單值可以通過_GET獲取;但通過action的url設置的參數總是獲取不到的,<form method="get" action="a.asp?b=b">跟<form method="get"action="a.asp">是一樣的,也就是說,在這種情況下,GET方式會忽略action頁面後邊帶的參數列表。POST表單值可以通過_POST獲取;但通過action的url參數設置的參數則可以不能通過_POST獲取到。action=test.php?id=1這種就是GET方式傳值,可以用$_REQUEST和$_GET接受傳值,但不能用POST方式獲取到值,即使表單是POST方式提交。所在,在提交表單時,如果action中同時有參數,最好只能通過POST表單方式,對於表單內數據,直接通過POST獲取,對於action中參數,童工GET獲取。
在做數據查詢時,建議用GET方式,而在做數據添加、修改或刪除時,建議用POST方式。
request是先讀取 get再讀post 的, 同時存在, 即覆蓋掉前面的變數。
經典實例:
<?php
echo "get\n";
print_r($_GET);
echo "post\n";
print_r($_POST);
echo "request\n";
print_r($_REQUEST);
?>
<form method=post action='?a=1&b=2'>
<input type=text name=a value='a'>
<input type=text name=b value='b'>
<input type=submit value=test>
</form>

輸出結果:
get:
Array
(
[a] => 1
[b] => 2
)
post:
Array
(
[a] => a
[b] => b
)
request:
Array
(
[a] => a
[b] => b
)

其實,在php配置文件php.ini中有一個設置項:variables_order = "GPCS" ,GPCS分別是GET,POST,Cookie,Server的首字母縮寫,variables_order = "GPCS"含義是php文件中變數的解析順序是GET,POST,Cookie和Server。

㈦ PHP的Request

aspx
中的
request
是獲取post

get參數的方法
在php中
使用
$_REQUEST[]
超全局變數來獲取。。

㈧ 請問,php中的$_REQUEST是什麼意思啊

PHP$_REQUEST是用於收集HTML表單提交的數據,PHP$_REQUEST屬於PHP的超級全局變數。

以下實例顯示了一個輸入欄位(input)及提交按鈕(submit)的表單(form)。 當用戶通過點擊 "Submit" 按鈕提交表單數據時, 表單數據將發送至<form>標簽中 action 屬性中指定的腳本文件。

在這個實例中,我們指定文件來處理表單數據。如果你希望其他的PHP文件來處理該數據,你可以修改該指定的腳本文件名。 然後,我們可以使用超級全局變數$_REQUEST來收集表單中的 input 欄位數據。

(8)php中的request擴展閱讀:

PHP中預定義了幾個超級全局變數,這意味著它們在一個腳本的全部作用域中都可用。 你不需要特別說明,就可以在函數及類中使用。

1、$GLOBAL

$GLOBAL 是PHP的一個超級全局變數組,在一個PHP腳本的全部作用域中都可以訪問。$GLOBAL 是一個包含了全部變數的全局組合數組。變數的名字就是數組的鍵。

2、$_SERVER

$_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。

這個數組中的項目由 Web 伺服器創建。不能保證每個伺服器都提供全部項目;伺服器可能會忽略一些,或者提供一些沒有在這里列舉出來的項目。

3、$_REQUEST

PHP $_REQUEST 用於收集HTML表單提交的數據。

4、$_POST

PHP $_POST 被廣泛應用於收集表單數據,在HTML form標簽的指定該屬性:"method="post"

5、$_GET

PHP $_GET 同樣被廣泛應用於收集表單數據,在HTML form標簽的指定該屬性:"method="get"。

㈨ 請教PHP的require和request的區別,在哪裡除了一個是致命錯誤,代碼停止一個是警告,還有啥

php里有個$_REQUEST。request是什麼鬼?

感覺你說的應該是PHP中require和require_once的區別,除了各種教程里說的,require如果有多個相同路徑的require,都會執行require_once如果有多個同路徑的require_once,只執行一次。

但是你知道嗎,第二次執行require_once 會返回一個true,栗子:

<?php
$test=require_once'test.php';
var_mp($test);//'testint(1)'

$test=require_once'test.php';
var_mp($test);//'bool(true)'

如果是 include()和require()方法的區別

㈩ php $_REQUEST什麼意思

PHP $_REQUEST 用於收集HTML表單提交的數據。
以下實例顯示了一個輸入欄位(input)及提交按鈕(submit)的表單(form)。 當用戶通過點擊 "Submit" 按鈕提交表單數據時, 表單數據將發送至<form>標簽中 action 屬性中指定的腳本文件。 在這個實例中,我們指定文件來處理表單數據。如果你希望其他的PHP文件來處理該數據,你可以修改該指定的腳本文件名。 然後,我們可以使用超級全局變數 $_REQUEST 來收集表單中的 input 欄位數據。

閱讀全文

與php中的request相關的資料

熱點內容
oracle11g啟動命令 瀏覽:931
怎麼把視頻傳到自己的文件夾 瀏覽:700
福州電動車在哪個app上搖號 瀏覽:818
禮書PDF 瀏覽:667
什麼app看本子 瀏覽:394
如何學好編譯語言 瀏覽:591
平面編程和切削 瀏覽:704
phpemoji表情符號 瀏覽:778
IBM雲平台shor演算法 瀏覽:576
程序員當乙方 瀏覽:519
php商城設計與實現的 瀏覽:305
php自動列印 瀏覽:469
哪個app多年輕人 瀏覽:902
租的伺服器如何重裝 瀏覽:937
乾眼症程序員 瀏覽:239
樂動達人安卓版有什麼游戲 瀏覽:484
c523壓縮比 瀏覽:544
命令語氣的人什麼心態 瀏覽:435
程序員喜歡留指甲嗎 瀏覽:516
七牛雲伺服器收費標准 瀏覽:627