在跳轉(zhuǎn)的時(shí)候php一般默認(rèn)你用的是相對(duì)地址所以會(huì)把域名自動(dòng)加上,所以在存儲(chǔ)地址的時(shí)候一般要把http://加上。
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括洪江網(wǎng)站建設(shè)、洪江網(wǎng)站制作、洪江網(wǎng)頁(yè)制作以及洪江網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,洪江網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到洪江省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
php訪問(wèn)url的四種方式
1.fopen方式
//訪問(wèn)指定URL函數(shù)
[php] view plain copy
print?
function access_url($url) {
if ($url=='') return false;
$fp = fopen($url, 'r') or exit('Open url faild!');
if($fp){
while(!feof($fp)) {
$file.=fgets($fp)."";
}
fclose($fp);
}
return $file;
}
2.file_get_contents方式(打開(kāi)遠(yuǎn)程文件的時(shí)候會(huì)造成CPU飆升。file_get_contents其實(shí)也可以post)
[php] view plain copy
print?
$content = file_get_contents("httttp://w");
3.curl方式
[php] view plain copy
print?
function curl_file_get_contents($durl){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $durl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 獲取數(shù)據(jù)返回
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在啟用 CURLOPT_RETURNTRANSFER 時(shí)候?qū)@取數(shù)據(jù)返回
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
4.fsockopen方式(只能獲取網(wǎng)站主頁(yè)信息,其他頁(yè)面不可以)
[php] view plain copy
print?
$fp = fsockopen("", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)br /\n";
} else {
$out="GET / HTTP/1.1\r\n";
$out.="Host: \r\n";
$out.="Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
常用的就三種吧,
file_get_contents(), fopen, curl
一般用 curl 擴(kuò)展的比較多,除此以外還有其他方法
fsockopen 啥的
PHP中打開(kāi)URL地址的幾種方法總結(jié),這里的函數(shù)主要用于小偷采集等函數(shù)。
1:?用file_get_contents?
以get方式獲取內(nèi)容?
復(fù)制代碼?代碼如下:
?php?
$url='';?
$html?=?file_get_contents($url);?
//print_r($http_response_header);?
ec($html);?
printhr();?
printarr($http_response_header);?
printhr();?
??
示例代碼2:?用fopen打開(kāi)url,?
以get方式獲取內(nèi)容?
復(fù)制代碼?代碼如下:
??
$fp?=?fopen($url,?'r');?
printarr(stream_get_meta_data($fp));?
printhr();?
while(!feof($fp))?{?
$result?.=?fgets($fp,?1024);?
}?
echo?"url?body:?$result";?
printhr();?
fclose($fp);?
??
示例代碼3:用file_get_contents函數(shù),以post方式獲取url?
復(fù)制代碼?代碼如下:
?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('',?false,?$context);?
echo?$html;?
??
示例代碼4:用fsockopen函數(shù)打開(kāi)url,以get方式獲取完整的數(shù)據(jù),包括header和body?
復(fù)制代碼?代碼如下:
??
function?get_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)?{?
return?false;?
}?else?{?
$request?=?"GET?$query?HTTP/1.1";?
$request?.=?"Host:?$url[host]";?
$request?.=?"Connection:?Close";?
if($cookie)?$request.="Cookie:?$cookie\n";?
$request.="";?
fwrite($fp,$request);?
while(!@feof($fp))?{?
$result?.=?@fgets($fp,?
1024);?
}?
fclose($fp);?
return?$result;?
}?
}?
//獲取url的html部分,去掉header?
function?GetUrlHTML($url,$cookie=false)?{?
$rowdata?=?get_url($url,$cookie);?
if($rowdata)?
{?
$body=?
stristr($rowdata,"");?
$body=substr($body,4,strlen($body));?
return?$body;?
}?
return?false;?
}?
?
在PHP的開(kāi)發(fā)中我們經(jīng)常會(huì)通過(guò)網(wǎng)址URL向另一個(gè)網(wǎng)頁(yè)傳遞參數(shù)的問(wèn)題。在這個(gè)過(guò)程中我們首先需要獲取到當(dāng)前頁(yè)面的URL,然后將URL中各個(gè)參數(shù)的值保存到變量中。整個(gè)過(guò)程較為簡(jiǎn)單,主要涉及到$_SERVER的用法。
1、$_server['http_host'],作用:獲取網(wǎng)址域名,如(,這是波波的一個(gè)博客,暫且做例子吧)。
2、$_SERVER["PHP_SELF"],作用:獲取網(wǎng)頁(yè)地址,如(/code/445.html)。
3、$_SERVER["QUERY_STRING"],作用:獲取網(wǎng)址URL參數(shù),待會(huì)我們會(huì)在實(shí)例中用到。
4、$_SERVER["HTTP_REFERER"],作用:獲取用戶(hù)的代理。
通過(guò)上述說(shuō)明我們基本上已經(jīng)了解了$_server的常用方法,下面我們首先通過(guò)PHP代碼獲取當(dāng)前網(wǎng)頁(yè)網(wǎng)址中傳遞的參數(shù)。對(duì)參數(shù)進(jìn)行解析并輸出到屏幕上。請(qǐng)看源代碼:
?php
$para=urldecode($_SERVER["QUERY_STRING"]);//避免網(wǎng)址參數(shù)中文亂碼
//舉例url=";b=bbbbc=cccc"
//$para='a=aaaab=bbbbc=cccc';
$cont=get_data($para);
echo$cont['a'];//屏幕打印aaaa
functionget_data($str){
$data=array();
$parameter=explode('',end(explode('?',$str)));
foreach($parameteras$val){
$tmp=explode('=',$val);
$data[$tmp[0]]=$tmp[1];
}
return$data;
}
?