php原链接
可以参考以下几种方法:
方法一:file_get_contents获取
spanstyle="white-space:pre"?/span$url="";
spanstyle="white-space:pre"?/span$fh=file_get_contents
('');spanstyle="white-space:pre"?/spanecho$fh;
方法二:使用fopen获取网页源代码
spanstyle="white-space:pre"?/span$url="";
spanstyle="white-space:pre"?/span$handle=fopen($url,"rb");
spanstyle="white-space:pre"?/span$contents="";
spanstyle="white-space:pre"?/spanwhile(!feof($handle)){
spanstyle="white-space:pre"??/span$contents.=fread($handle,8192);
spanstyle="white-space:pre"?/span}
spanstyle="white-space:pre"?/spanfclose($handle);
spanstyle="white-space:pre"?/spanecho$contents;//输出获取到得内容。
方法三:使用CURL获取网页源代码
$url="";
$UserAgent='Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0;SLCC1;.NETCLR2.0.50727;.NETCLR3.0.04506;.NETCLR3.5.21022;.NETCLR1.0.3705;.NETCLR1.1.4322)'
$curl=curl_init();?//创建一个新的CURL资源
curl_setopt($curl,CURLOPT_URL,$url);?//设置URL和相应的选项
curl_setopt($curl,CURLOPT_HEADER,0);?//0表示不输出Header,1表示输出
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);?//设定是否显示头信息,1显示,0不显示。//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_ENCODING,'');?//设置编码格式,为空表示支持所有格式的编码
//header中“Accept-Encoding:”部分的内容,支持的编码格式为:"identity","deflate","gzip"。
curl_setopt($curl,CURLOPT_USERAGENT,$UserAgent);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
//设置这个选项为一个非零值(象“Location:“)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如“Location:“的头)。
$data=curl_exec($curl);
echo$data;
//echocurl_errno($curl);//返回0时表示程序执行成功
curl_close($curl);?//关闭cURL资源,并释放系统资源
拓展资料
PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
‘贰’ 用PHP获取链接及图片路径的方法
<?php
$str="Thisisatest.Thisisatest.Thisisa<ahref=http://link1.com><imgsrc=http://img1.jpg/></a>test.Thisisatest.Thisisatest. ".
"Thisisatest.Thisisatest.<ahref=http://link2.com><imgsrc=http://img2.jpg/></a>Thisisatest.Thisisatest.Thisisatest. ".
"<ahref=http://link3.com><imgsrc=http://img3.jpg/></a>";
$regex='/<as+href=(.*)s*><imgs+src=(.*)s*/></a>/';
$output=array();
if(preg_match_all($regex,$str,$matches)!==false){
if(isset($matches[1])&&isset($matches[2])){
$links=$matches[1];
$imgs=$matches[2];
foreach($linksas$key=>$link){
$img=isset($imgs[$key])?$imgs[$key]:'';
$output[]="<ahref="{$link}"><imgsrc="{$img}"/></a>";
}
}
}
var_mp($output);
‘叁’ php怎么抓取这个链接https://locate.apple.com/cn/zh/service/pt=3&lat=23.134521&lon=113.358803的源码
<?php
function dg_string($data,$flagA, $flagB, $start = 0){//配套截取字符串
$flagAL=strlen($flagA);
$flagBL=strlen($flagB);
$rn='';
$a=$b=0;
if(($findA=strpos($data,$flagA, $start))!==false){
$a=1;
$tmpA=$findA;
$findB=$findA+$flagAL;
$findA=$findB;
while($a!=$b){
if(($findB = strpos($data, $flagB, $findB))!==false){
$b++;
if(($findA = strpos($data, $flagA, $findA))!==false){
if($findA>$findB){
if($a==$b){
//结束
$findB+=$flagBL;
$rn=substr($data,$tmpA,$findB-$tmpA);
} else {
$a++;
$findB=$findA+$flagAL;
$findA=$findB;
}
} else {
$a++;
$findA+=$flagAL;
$findB+=$flagBL;
}
} else {
if($a==$b){
//结束
$findB+=$flagBL;
$rn=substr($data,$tmpA,$findB-$tmpA);
} else {
//标记不完整
$findB+=$flagBL;
}
}
} else {
//标记不完整
$rn=substr($data,$tmpA);
$rn.=str_repeat($flagB,$a-$b);
break;
}
}
}
return $rn;
}
$html = file_get_contents('https://locate.apple.com/cn/zh/service/?pt=3&lat=23.134521&lon=113.358803');//获取源码
$find = strpos($html, 'window.resourceLocator.setup');
$json1 = dg_string($html, '{', '}', $find);//获取第一个JSON数据
$find = strpos($html, 'window.resourceLocator.storeSetup');
$json2 = dg_string($html, '{', '}', $find);//获取第二个JSON数据
$arr1 = json_decode($json1, true);//第一个JSON数据转为数组
$arr2 = json_decode($json2, true);//第二个JSON数据转为数组
print_r($arr1);
print_r($arr2);
//得到了数组,你想获取哪个参数都行了,你自己看着办吧,楼主可亲测代码
?>