扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在跳转的时候php一般默认你用的是相对地址所以会把域名自动加上,所以在存储地址的时候一般要把http://加上。
创新互联建站服务项目包括洪江网站建设、洪江网站制作、洪江网页制作以及洪江网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,洪江网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到洪江省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
php访问url的四种方式
1.fopen方式
//访问指定URL函数
[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方式(打开远程文件的时候会造成CPU飙升。file_get_contents其实也可以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) ; // 获取数据返回
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
4.fsockopen方式(只能获取网站主页信息,其他页面不可以)
[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 扩展的比较多,除此以外还有其他方法
fsockopen 啥的
PHP中打开URL地址的几种方法总结,这里的函数主要用于小偷采集等函数。
1: 用file_get_contents
以get方式获取内容
复制代码 代码如下:
?php
$url='';
$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 "url body: $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('', false, $context);
echo $html;
?
示例代码4:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body
复制代码 代码如下:
?
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的开发中我们经常会通过网址URL向另一个网页传递参数的问题。在这个过程中我们首先需要获取到当前页面的URL,然后将URL中各个参数的值保存到变量中。整个过程较为简单,主要涉及到$_SERVER的用法。
1、$_server['http_host'],作用:获取网址域名,如(,这是波波的一个博客,暂且做例子吧)。
2、$_SERVER["PHP_SELF"],作用:获取网页地址,如(/code/445.html)。
3、$_SERVER["QUERY_STRING"],作用:获取网址URL参数,待会我们会在实例中用到。
4、$_SERVER["HTTP_REFERER"],作用:获取用户的代理。
通过上述说明我们基本上已经了解了$_server的常用方法,下面我们首先通过PHP代码获取当前网页网址中传递的参数。对参数进行解析并输出到屏幕上。请看源代码:
?php
$para=urldecode($_SERVER["QUERY_STRING"]);//避免网址参数中文乱码
//举例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;
}
?
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流