用戶在表格form
創(chuàng)新互聯(lián)建站專注于靈武網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供靈武營(yíng)銷型網(wǎng)站建設(shè),靈武網(wǎng)站制作、靈武網(wǎng)頁(yè)設(shè)計(jì)、靈武網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造靈武網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供靈武網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
中填寫數(shù)據(jù),然后提交到一個(gè)php文件,PHP文件使用函數(shù)獲取數(shù)據(jù)
form action="welcome.php" method="post"
Name: input type="text" name="name"br
E-mail: input type="text" name="email"br
input type="submit" value="提交"
/form用戶填寫完username后提交到welcome.php文件,在welcome.php文件中,
html
body
Welcome ?php echo $_POST["name"]; ?br
Your email address is: ?php echo $_POST["email"]; ?
/body
/html$_POST["name"]就是用戶輸入的名字
使用PHP的cURL庫(kù)可以簡(jiǎn)單和有效地去抓網(wǎng)頁(yè) 你只需要運(yùn)行一個(gè)腳本 然后分析一下你所抓取的網(wǎng)頁(yè) 然后就可以以程序的方式得到你想要的數(shù)據(jù)了 無(wú)論是你想從從一個(gè)鏈接上取部分?jǐn)?shù)據(jù) 或是取一個(gè)XML文件并把其導(dǎo)入數(shù)據(jù)庫(kù) 那怕就是簡(jiǎn)單的獲取網(wǎng)頁(yè)內(nèi)容 cURL 是一個(gè)功能強(qiáng)大的PHP庫(kù) 本文主要講述如果使用這個(gè)PHP庫(kù)
啟用 cURL 設(shè)置
首先 我們得先要確定我們的PHP是否開啟了這個(gè)庫(kù) 你可以通過(guò)使用php_info()函數(shù)來(lái)得到這一信息
﹤?phpphpinfo();?﹥
如果你可以在網(wǎng)頁(yè)上看到下面的輸出 那么表示cURL庫(kù)已被開啟
如果你看到的話 那么你需要設(shè)置你的PHP并開啟這個(gè)庫(kù) 如果你是在Windows平臺(tái)下 那么非常簡(jiǎn)單 你需要改一改你的php ini文件的設(shè)置 找到php_curl dll 并取消前面的分號(hào)注釋就行了 如下所示
//取消下在的注釋extension=php_curl dll
如果你是在Linux下面 那么 你需要重新編譯你的PHP了 編輯時(shí) 你需要打開編譯參數(shù)——在configure命令上加上 –with curl 參數(shù)
一個(gè)小示例
如果一切就緒 下面是一個(gè)小例程
﹤?php// 初始化一個(gè) cURL 對(duì)象$curl = curl_init();
// 設(shè)置你需要抓取的URLcurl_setopt($curl CURLOPT_URL //cocre );
// 設(shè)置headercurl_setopt($curl CURLOPT_HEADER );
// 設(shè)置cURL 參數(shù) 要求結(jié)果保存到字符串中還是輸出到屏幕上 curl_setopt($curl CURLOPT_RETURNTRANSFER );
// 運(yùn)行cURL 請(qǐng)求網(wǎng)頁(yè)$data = curl_exec($curl);
// 關(guān)閉URL請(qǐng)求curl_close($curl);
// 顯示獲得的數(shù)據(jù)var_dump($data);
如何POST數(shù)據(jù)
上面是抓取網(wǎng)頁(yè)的代碼 下面則是向某個(gè)網(wǎng)頁(yè)P(yáng)OST數(shù)據(jù) 假設(shè)我們有一個(gè)處理表單的網(wǎng)址// example /sendSMS php 其可以接受兩個(gè)表單域 一個(gè)是電話號(hào)碼 一個(gè)是短信內(nèi)容
﹤?php$phoneNumber = ;$message = This message was generated by curl and php ;$curlPost = pNUMBER= urlencode($phoneNumber) MESSAGE= urlencode($message) SUBMIT=Send ;$ch = curl_init();curl_setopt($ch CURLOPT_URL // example /sendSMS php );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_POST );curl_setopt($ch CURLOPT_POSTFIELDS $curlPost);$data = curl_exec();curl_close($ch);?﹥
從上面的程序我們可以看到 使用CURLOPT_POST設(shè)置HTTP協(xié)議的POST方法 而不是GET方法 然后以CURLOPT_POSTFIELDS設(shè)置POST的數(shù)據(jù)
關(guān)于代理服務(wù)器
下面是一個(gè)如何使用代理服務(wù)器的示例 請(qǐng)注意其中高亮的代碼 代碼很簡(jiǎn)單 我就不用多說(shuō)了
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPPROXYTUNNEL );curl_setopt($ch CURLOPT_PROXY fakeproxy : );curl_setopt($ch CURLOPT_PROXYUSERPWD user:password );$data = curl_exec();curl_close($ch);?﹥ 關(guān)于SSL和Cookie
關(guān)于SSL也就是HTTPS協(xié)議 你只需要把CURLOPT_URL連接中的//變成//就可以了 當(dāng)然 還有一個(gè)參數(shù)叫CURLOPT_SSL_VERIFYHOST可以設(shè)置為驗(yàn)證站點(diǎn)
關(guān)于Cookie 你需要了解下面三個(gè)參數(shù)
CURLOPT_COOKIE 在當(dāng)面的會(huì)話中設(shè)置一個(gè)cookie
CURLOPT_COOKIEJAR 當(dāng)會(huì)話結(jié)束的時(shí)候保存一個(gè)Cookie
CURLOPT_COOKIEFILE Cookie的文件
HTTP服務(wù)器認(rèn)證
最后 我們來(lái)看一看HTTP服務(wù)器認(rèn)證的情況
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPAUTH CURLAUTH_BASIC);curl_setopt(CURLOPT_USERPWD [username]:[password] )
$data = curl_exec();curl_close($ch);?﹥
關(guān)于其它更多的內(nèi)容 請(qǐng)參看相關(guān)的cURL手冊(cè) lishixinzhi/Article/program/PHP/201311/21491
通過(guò)網(wǎng)頁(yè)表單獲取的數(shù)據(jù),在php文件中呈現(xiàn),利用php方法中的$_GET方法接受,提交的數(shù)據(jù)為一個(gè)字典。
1、通過(guò)輸入網(wǎng)址請(qǐng)求服務(wù)器中的html文件,服務(wù)器接受請(qǐng)求文件,進(jìn)行處理
2、服務(wù)器接收后,處理成響應(yīng)報(bào)文進(jìn)行返回到用戶瀏覽器界面
3、第二次在html的表單中提交的數(shù)據(jù)會(huì)形成請(qǐng)求報(bào)文到服務(wù)器中,php文件接受數(shù)據(jù)并進(jìn)行處理
4、服務(wù)器中php文件接收后會(huì)處理并返回響應(yīng)文件呈現(xiàn)到用戶瀏覽器界面
將form表單中的method的取值改成post就是以post的方式將文件放給服務(wù)器。
1、相同點(diǎn)
2、不同點(diǎn)
一、用file_get_contents函數(shù),以post方式獲取url
?php
$url=?'';
$data=?array('foo'=?'bar');
$data= http_build_query($data);
$opts=?array(
'http'=?array(
'method'=?'POST',
'header'="Content-type: application/x-www-form-urlencoded\r\n" ?.
"Content-Length: " ?.?strlen($data) .?"\r\n",
'content'=?$data
)
);
$ctx= stream_context_create($opts);
$html= @file_get_contents($url,'',$ctx);
二、用file_get_contents以get方式獲取內(nèi)容
?php
$url='';
$html=?file_get_contents($url);
echo$html;
?
三、用fopen打開url, 以get方式獲取內(nèi)容
?php
$fp=?fopen($url,'r');
$header= stream_get_meta_data($fp);//獲取報(bào)頭信息
while(!feof($fp)) {
$result.=?fgets($fp, 1024);
}
echo"url header: {$header} br":
echo"url body: $result";
fclose($fp);
?
四、用fopen打開url, 以post方式獲取內(nèi)容
?php
$data=?array('foo2'=?'bar2','foo3'='bar3');
$data= http_build_query($data);
$opts=?array(
'http'=?array(
'method'=?'POST',
'header'="Content-type: application/x-www-form-
urlencoded\r\nCookie:cook1=c3;cook2=c4\r\n" ?.
"Content-Length: " ?.?strlen($data) .?"\r\n",
'content'=?$data
)
);
$context= stream_context_create($opts);
$html=?fopen(';id2=i4','rb',false,?$context);
$w=fread($html,1024);
echo$w;
?
五、使用curl庫(kù),使用curl庫(kù)之前,可能需要查看一下php.ini是否已經(jīng)打開了curl擴(kuò)展
?php
$ch= curl_init();
$timeout= 5;
curl_setopt ($ch, CURLOPT_URL,?'');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,?$timeout);
$file_contents= curl_exec($ch);
curl_close($ch);
echo$file_contents;
?
分享標(biāo)題:php取網(wǎng)頁(yè)數(shù)據(jù) php獲取網(wǎng)站內(nèi)容
分享地址:http://vcdvsql.cn/article36/ddopdsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、標(biāo)簽優(yōu)化、企業(yè)網(wǎng)站制作、網(wǎng)站制作、用戶體驗(yàn)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)