其實curl里面早就有對HEAD協(xié)議的支持// 只需要在你的代碼中加上這樣一行,就會自動選擇head協(xié)議
成都創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站建設(shè)、網(wǎng)站制作,小程序定制開發(fā),網(wǎng)頁設(shè)計制作,移動網(wǎng)站建設(shè),全網(wǎng)營銷推廣幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長。
curl_setopt($ch, CURLOPT_NOBODY, true);
如果你要讀取
Content-Length
,那么只需要在curl_exec后// 讀取的header里的Content-Length值
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
需要說明的是HEAD協(xié)議雖然被大部分服務(wù)器支持,但也不是說所有的服務(wù)器都支持,有的服務(wù)器為了防抓取,在設(shè)置中干掉了這個協(xié)議。而
Content-Length
也不是必須的字段,你應(yīng)該做到如果有這個值,而且超過了最大值,可以返回錯誤,如果沒有這個值,或者沒有超過最大值,就必須自己通過已經(jīng)下載的內(nèi)容大小來判斷。
至于你說的最大資源下載長度,我還沒看到這個設(shè)置項,不過這個問題有一個更加美好的解決方案,那就是用到
CURLOPT_HEADERFUNCTION和CURLOPT_WRITEFUNCTION
兩個回調(diào),那么就只需要一次請求即可完成所有的判斷,而且可以隨時斷掉$size = 0;$max_size = 123456;
curl_setopt($ch, CURLOPT_HEADERFUNCTION, function ($ch, $str) {
// 第一個參數(shù)是curl資源,第二個參數(shù)是每一行獨(dú)立的header!
list ($name, $value) = array_map('trim', explode(':', $str, 2));
$name = strtolower($name);
// 判斷大小啦
if ('content-length' == $name) {
if ($value $max_size) {
return 0; // 返回0就會中斷讀取}}});
// 對于沒有content-length的,我們一邊讀取一邊判斷
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function ($ch, $str) use ($size) {
$len = strlen($str);
$size += $len;
if ($size $max_size) {
1.html
內(nèi)容:
html
head
/head
body
form action="2.php" method="post"
input type="text" name="user" /
input type="submit" value="提交"
/form
/body
/html
2.php
內(nèi)容:
echo $_POST['user'];
可以用get傳,但是相對于的php頁面也要用$_GET 接收。
三中接受方式:
$_GET ? ?//get過來的數(shù)據(jù)
$_POST ?//post過來的數(shù)據(jù)
file_get_contents("php://input") ? //接口過來的xml等字符串?dāng)?shù)據(jù)用這個接
這三個方法足以接受任何數(shù)據(jù)了,具體你還要百度一下用法