一、用file_get_contents函數(shù),以post方式獲取url
創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的10余年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如成都軟裝設(shè)計(jì)等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致贊揚(yáng)。
?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打開(kāi)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打開(kāi)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)打開(kāi)了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;
?
簡(jiǎn)單的收集下PHP下獲取網(wǎng)頁(yè)內(nèi)容的幾種方法:
用file_get_contents,以get方式獲取內(nèi)容。
用fopen打開(kāi)url,以get方式獲取內(nèi)容。
使用curl庫(kù),使用curl庫(kù)之前,可能需要查看一下php.ini是否已經(jīng)打開(kāi)了curl擴(kuò)展。
用file_get_contents函數(shù),以post方式獲取url。
用fopen打開(kāi)url,以post方式獲取內(nèi)容。
用fsockopen函數(shù)打開(kāi)url,獲取完整的數(shù)據(jù),包括header和body。
如果你要
和
之間的所有源碼,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的
標(biāo)簽中的內(nèi)容,可以用preg_match_all //提取所有代碼 $pattern = '/
(.+?)
/is'; preg_match($pattern, $string, $match); //$match[0] 即為
和
之間的所有源碼 echo $match[0]; //然后再提取
之間的內(nèi)容 $pattern = '/(.+?)li/is'; preg_match_all($pattern, $match[0], $results); $new_arr=array_unique($results[0]); foreach($new_arr as $kkk){ echo $kkk; }
通過(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)
1.file_get_contents
PHP代碼
復(fù)制代碼 代碼如下:
?php
$url = "";
$contents = file_get_contents($url);
//如果出現(xiàn)中文亂碼使用下面代碼
//$getcontent = iconv("gb2312", "utf-8",$contents);
echo $contents;
?
2.curl
PHP代碼
復(fù)制代碼 代碼如下:
?php
$url = "";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
//在需要用戶檢測(cè)的網(wǎng)頁(yè)里需要增加下面兩行
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
?
3.fopen-fread-fclose
PHP代碼
復(fù)制代碼 代碼如下:
?php
$handle = fopen ("", "rb");
$contents = "";
do {
$data = fread($handle, 1024);
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
fclose ($handle);
echo $contents;
?
注:
1.
使用file_get_contents和fopen必須空間開(kāi)啟allow_url_fopen。方法:編輯php.ini,設(shè)置
allow_url_fopen = On,allow_url_fopen關(guān)閉時(shí)fopen和file_get_contents都不能打開(kāi)遠(yuǎn)程文件。
2.使用curl必須空間開(kāi)啟curl。方法:windows下修改php.ini,將extension=php_curl.dll前面的分
號(hào)去掉,而且需要拷貝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安裝curl擴(kuò)
展。
用戶在表格form
中填寫數(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"]就是用戶輸入的名字