phpurlget
『壹』 php怎麼獲取表單提交的數據啊
一、用file_get_contents以get方式獲取內容,需要輸入內容為:
1、<?php
2、$url='http://www.domain.com/?para=123';
3、$html=file_get_contents($url);
4、echo$html;
5、?>
二、用file_get_contents函數,以post方式獲取url,需要輸入內容為
1、<?php
2、$url='http://www.domain.com/test.php?id=123';
3、$data=array('foo'=>'bar');
4、$data=http_build_query($data);
5、$opts=array(
6、'http'=>array(
7、'method'=>'POST',
8、'header'=>"Content-type:application/x-www-form-urlencoded ".
9、"Content-Length:".strlen($data)." ",
10、'content'=>$data
11、)
12、);
13、$ctx=stream_context_create($opts);
14、$html=@file_get_contents($url,'',$ctx);
15、?>
三、用fopen打開url,以get方式獲取內容,需要輸入內容為
1、<?php
2、$fp=fopen($url,'r');
3、$header=stream_get_meta_data($fp);//獲取信息
4、while(!feof($fp)){
5、$result.=fgets($fp,1024);
6、叢升}
7、echo"urlheader:{$header}<br>":
8、echo"urlbody:$result";
9、fclose($fp);
10、納鄭碼?>
四、用fopen打開洞哪url,以post方式獲取內容,需要輸入內容為
1、<?php
2、$data=array('foo2'=>'bar2','foo3'=>'bar3');
3、$data=http_build_query($data);
4、$opts=array(
5、'http'=>array(
6、'method'=>'POST',
7、'header'=>"Content-type:application/x-www-form-urlencoded Cookie:cook1=c3;cook2=c4 ".
8、"Content-Length:".strlen($data)." ",
9、'content'=>$data
10、)
11、);
12、$context=stream_context_create($opts);
13、$html=fopen('http://www.test.com/zzzz.php?id=i3&id2=i4','rb',false,$context);
14、$w=fread($html,1024);
15、echo$w;
16、?>
五、用fsockopen函數打開url,以get方式獲取完整的數據,包括header和body,需要輸入內容為
1、?php
2、functionget_url($url,$cookie=false)
3、{
4、$url=parse_url($url);
5、$query=$url[path]."?".$url[query];
6、echo"Query:".$query;
7、$fp=fsockopen($url[host],$url[port]?$url[port]:80,$errno,$errstr,30);
8、if(!$fp){
9、returnfalse;
10、}else{
11、$request="GET$queryHTTP/1.1 ";
12、$request.="Host:$url[host] ";
13、$request.="Connection:Close ";
14、if($cookie)$request.="Cookie:$cookie ";
15、$request.=" ";
16、fwrite($fp,$request);
17、while(!@feof($fp)){
18、$result.=@fgets($fp,1024);
19、}
20、fclose($fp);
21、return$result;
22、}
23、}
24、//獲取url的html部分,去掉header
25、functionGetUrlHTML($url,$cookie=false)
26、{
27、$rowdata=get_url($url,$cookie);
28、if($rowdata)
29、{
30、$body=stristr($rowdata," ");
31、$body=substr($body,4,strlen($body));
32、return$body;
33、}
34、returnfalse;
35、}
36、?>
『貳』 php curl get 下載遠程zip文件保存在本地例子
<?php
if($_POST['submit']){
$url=$_POST['url']; //取得提交過來的地址http://hu60.cn/wap/0wap/addown.php/fetion_sms.zip
$url=urldecode($url);
$fname=basename("$url"); //返迴路徑中的文件名部分 fetion_sms.zip
$str_name=pathinfo($fname); //以數組的形式返迴文件路徑的信息
$extname=strtolower($str_name['extension']); //把擴展名轉換成小寫
//$uptypes=explode(",",$forum_upload); //取得可以上傳的文件格式
//$size=getFileSize($url);
$time=date("Ymd",time());
$upload_dir="./upload/";//上傳的路徑
$file_name=$time.rand(1000,9999).'.'.$fname;
$dir=$upload_dir.$file_name;//創建上傳目錄
//判斷目錄是否存在 不存在則創建
if(!file_exists($upload_dir)){
mkdir($upload_dir,0777,true);
}
$contents=curl_download($url,$dir);
if($contents){
echo "下載成功";
}else{
echo "下載失敗";
}
}
function curl_download($url, $dir) {
$ch = curl_init($url);
$fp = fopen($dir, "wb");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
$res=curl_exec($ch);
curl_close($ch);
fclose($fp);
return $res;
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>遠程下載文件</title>
<form name="upform" method="post" action="" enctype='multipart/form-data'>
<input name='url' type='text' size='20'/>
<input type='submit' name='submit' value='遠程下載'/>
</form>
</body>
</html>
『叄』 復習本 03 PHP中post和get的區別
GET是HTTP中最原始的請求方式,在網頁中點擊一個超級鏈接或在地址欄輸入一個URL都會發送一個GET請求。在GET請求中,數據是後綴在URL後面來發送的。
GET方法的本意就是下載(與其對應的是上傳方法PUT),因此並不是專門用於傳遞數據的,它將請求數據全部經過URL編碼後綴在請求資源的後面,這樣一來,當數據很多時URL就會變得很長——但這並不是問題的所在,問題所在是一些WEB瀏覽器或伺服器程序會限制這行字元串的長度。這時,就需要用到 POST方法了。
顧名思義,POST方法的主要用途就是「傳遞」數據,它將數據放在所有請求標題的後面上傳,這樣一來,無論有多少數據上傳都不成問題了(這樣請求數據的大小之取決於WEB服務允許的尺寸了)。通常來說,對於表單數據如無特別需要都使用POST方法來上傳,這樣就無須去關心具體上傳數據的尺寸了。
區別:
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傳送的數據量較大,一般被默認為不受限制。
5. get執行效率卻比post方法好;
post安全性比get較高(包含機密信息的話,建議用Post數據提交方式)。
6. 在做數據查詢時,建議用get方式;
在做數據添加、修改或刪除時,建議用post方式;
『肆』 php Curl的get和post方法
get方法
function http_get($url)
{
$oCurl = curl_init();
if (stripos($url, "https://") !== FALSE) {
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
//curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);
//CURL_SSLVERSION_TLSv1
}
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if (intval($aStatus["http_code"]) == 200) {
return $sContent;
} else {
return false;
}
}
post方法
// curlpost請求
function http_post($url, $data = NULL, $json = false)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
if (!empty($data)) {
if ($json && is_array($data)) {
$data = json_encode($data);
}
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
if ($json) { //發送JSON數據
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt(
$curl,
CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json; charset=utf-8',
'Content-Length:' . strlen($data)
)
);
}
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($curl);
$errorno = curl_errno($curl);
if ($errorno) {
return array('errorno' => false, 'errmsg' => $errorno);
}
curl_close($curl);
return json_decode($res, true);
}
『伍』 php打開URL的幾種方法
PHP中打開URL地址的幾種方法總結,這里的函數主要用於小偷採集等函數。
1:用file_get_contents
以get方式獲取內容
復制代碼代碼如下:
<?php
$url='http://www..com/';
$html=file_get_contents($url);
//print_r($http_response_header);
ec($html);
printhr();
printarr($http_response_header);
printhr();
?>
示例代碼2:用fopen打開url,
以get方式獲取內容
復制代碼代碼如下:
<?
$fp=fopen($url,'r');
printarr(stream_get_meta_data($fp));
printhr();
while(!feof($fp)){
$result.=fgets($fp,1024);
}
echo"urlbody:$result";
printhr();
fclose($fp);
?>
示例代碼3:用file_get_contents函數,以post方式獲取url
復制代碼代碼如下:
<?php
$data=array('foo'=>
'bar');
$data=http_build_query($data);
$opts=array(
'http'
=>array(
'method'=>'POST',
'header'=>"Content-type:
application/x-www-form-urlencoded".
"Content-Length:".strlen($data).
"",
'content'=>$data
),
);
$context=
stream_context_create($opts);
$html=
file_get_contents('http://localhost/e/admin/test.html',false,$context);
echo$html;
?>
示例代碼4:用fsockopen函數打開url,以get方式獲取完整的數據,包括header和body
復制代碼代碼如下:
<?
functionget_url
($url,$cookie=false){
$url=parse_url($url);
$query=
$url[path]."?".$url[query];
ec("Query:".$query);
$fp=fsockopen(
$url[host],$url[port]?$url[port]:80,$errno,$errstr,30);
if(!$fp){
returnfalse;
}else{
$request="GET$queryHTTP/1.1";
$request.="Host:$url[host]";
$request.="Connection:Close";
if($cookie)$request.="Cookie:$cookie ";
$request.="";
fwrite($fp,$request);
while(!@feof($fp)){
$result.=@fgets($fp,
1024);
}
fclose($fp);
return$result;
}
}
//獲取url的html部分,去掉header
functionGetUrlHTML($url,$cookie=false){
$rowdata=get_url($url,$cookie);
if($rowdata)
{
$body=
stristr($rowdata,"");
$body=substr($body,4,strlen($body));
return$body;
}
returnfalse;
}
?>
『陸』 php如何提取url中參數中的url裡面的參數
你應該說的是用GET方法傳送表單吧。這里的參數可以用PHP提供的數組GET[ ],來解決。例如:要提取這個jb_id,可以先聲明個變數:$jb_id=$_GET['jb_id']; 注意這里的變數名並不唯一。格式是:$變數名=$_GET[參數名];
你這個例子可寫一下代碼:
$jb_id=$_GET['jb_id'];
$id=$_GET['id'];
$sj=$_GET['sj'];
執行後, $jb_id值就是:11111 ,$id值就是:99999,$sj值就是:hsdbd
然後像處理一般變數那麼處理。
不知道你明白不?其實你也可以用POST方式傳遞參數,用法跟GET完全相同,只是表單中的方式要改為:POST