php怎么抓取这个链接https://locate.apple.com/cn/zh/service/?pt=3&lat=23.134521&lon=113.358803的源码

作者&投稿:戢黛 (若有异议请与网页底部的电邮联系)
学php用苹果电脑可以吗~

可以的。下载一个IDE编辑器以及运行环境就行了。
mac系统自带了apache和php。只要配置调试一下就可以了。
mysql需要自己下载安装。

编写过程和在windows没什么太大差别。

苹果笔记本 是开发php的王道。。。。。。没有比苹果笔记本更合适的了。 只是看你会不会用。

<?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);
//得到了数组,你想获取哪个参数都行了,你自己看着办吧,楼主可亲测代码
?>

楼主试试这个
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8">

</head>
<?php
define ('REGEX_EXP','/ = ({.+}}});/');
$r =geturl('https://locate.apple.com/cn/zh/service/?pt=3&lat=23.134521&lon=113.358803');

preg_match(REGEX_EXP, $r, $found);

echo $found[1];

function geturl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, '');
curl_setopt($ch, CURLOPT_REFERER,'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
?>
</html>

弄好了就可以直接在网页上面用json操作了

苹果使用的是https ,用file_get_contents()函数不行,要用curl的方式
<?php
$url = ("https://locate.apple.com/cn/zh/service/?pt=3&lat=23.134521&lon=113.358803");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
print_r($result);
?>
重点是以下两句:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

简单做了一个,没有用正则,为这个定做的,直接切字符。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
</HEAD>
<title>读取测试</title>
<BODY>
<?php

$r =geturl('https://locate.apple.com/cn/zh/service/?pt=3&lat=23.134521&lon=113.358803');
//echo "<PRE>".htmlspecialchars($r)."</PRE>\n";
$a=explode('"results":',$r);
$b=explode('"badges":',$a[1]);
$c=explode('":"',$b[0]);
$e='';
for($i=1;$i<count($c);$i++){
$d=explode('"',$c[$i]);
$e.=$d[0].' ';
}
$e=str_replace('DATA_FEED',"\r\n <br>",$e);
echo $e;

function geturl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, '');
curl_setopt($ch, CURLOPT_REFERER,'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
?>
</BODY>
</HTML>


怎么利用HPofficejetpro8100链接wifi上网
这样之后会进入一个设置 路由器的界面 在里面 有一个 要输入 你现在上网用的猫 的ISP (帐户)和密码! 输入后根据提示你可以设置完成!之后是设置无线网络 在这里 你可以 设置共享密码 以及其他各种 功能!最后 是重启 电脑!这时候 你可以把路由器连接在猫上面 记住 这个时候连接时要选择...

hp laserjet m1319打印机怎么链接
如果打印机直接连接在本地电脑上,就选择本地打印机;如果打印机不是连接在本地电脑上,而是连接在其他电脑上(本地电脑通过网络使用其他电脑上的打印机),那么就选择其他打印机。在这个例子里面选择本地打印机。单击后,系统会提供打印机的制造厂商和打印机型号的列表,可以使用Windows操作系统提供的打印...

hp m28w 怎么连接无线?
首先要让你的打印机连接无线网络,按住打印机上的无线网络按钮,会自动搜索网络进行连接的,然后手机上下载惠普快印的APP,然后打开点击搜索打印机进行连接就可以进行无线打印了。惠普快印APP的话,你可以登www8.hp.com\/cn\/zh\/printers\/home\/mobileprinting.html 下载HP Smart APP ...

惠普打印机怎么扫描到电脑上 惠普无线打印机连接电脑方法【详解】-搜狗...
现在您可以轻松下载最新版本的搜狗输入法,享受极致的输入新体验。http:\/\/pinyin.37moyu.com\/ 惠普 打印机 在我们的生活中见的还是比较多的,很多公司,包括家庭使用的打印机都是这个品牌。打印机除了平时可以打印文件外,还有很多的其它的功能,这些我们不渗入了解都不清楚。那么 惠普打印机怎么扫描到 ...

惠普126nw打印机怎么连接无线网络打印
3、按打印机设置键,选择网络设置,无线菜单-WPS设置-按钮,按OK,打开打印机无线路由,再按打印机设置键,选择报告-配置设置,点OK,打印配置设置信息。4、断开电脑原有的无线网络连接,然后根据配置设置信息里“无线直接设置”里的SSID(HP-Print-80-LaserJet Pro MFP )名,在电脑“无线网络查找”上...

惠普家用打印机怎么用 惠普打印机如何连接电脑【详解】-搜狗输入法_百 ...
http:\/\/pinyin.37moyu.com\/ 惠普 打印机 我们都比较熟悉了,很多家庭使用的都是这个牌子,在家里备上一台打印机,无论是对自己的工作,还是孩子的学习都是非常有益的。对于打印机的使用方式很多人一直都不解。下面小编就来为大家介绍下 惠普家用打印机使用方法?惠普打印机怎么连接 电脑 ? 一、...

怎么下载惠普的无线网卡驱动?可以给个具体链接吗
1、由于笔记本型号不同,操作系统版本不同,驱动程序也不相同。您可以根据机器实际型号和操作系统版本,来下载无线网卡驱动。关于如何从惠普官方网站下载相应产品的驱动程序,建议您可以参考下下面的官方文档:http:\/\/h20566.www2.hp.com\/portal\/site\/hpsc\/public\/kb\/docDisplay\/?docId=emr_na-c02903029...

怎么查惠普打印机的真伪?
您好,感谢您选择惠普产品。1、惠普官方网站链接如下:www.hp.com.cn 2、您打开上面网页后,在右上角搜索拦上输入“机器型号”或者“P\/N产品号的前5位字符”,就可以查看到机器相关信息了。3、温馨提示:如果您无法查询到相关信息,建议您提供一下“这款机器的具体型号”,及“描述想要查询什么方面...

惠普打印机怎么连接?
参考资料:《如何处理惠普打印机清洁墨头的菜单没有了?》jingyan.baidu\/...4 参考资料 jingyan.baidu\/...5 惠普打印机1136怎么链接电脑 普 HP LaserJet M1136MFP黑白多功能激光一体机连接电脑方法: 1、按下图方式连接线路。 2、安装驱动。使用自带的光盘安装或者使用驱动精灵安装打印机驱动。惠普的100...

怎么在惠普官网下载惠普ProBook4331s快捷键驱动
您好,感谢您选择惠普产品。4331s快捷键驱动惠普中文提供的下载链接,名称为“HP Hotkey 支持”,下载链接如下(XP、vista、windows7通用):ftp:\/\/ftp.hp.com\/pub\/softpaq\/sp56501-57000\/sp56876.exe windows8及windows8.1不需要单独安装,是由系统自动提供的。关于如何从惠普官方网站下载相应产品的...

汾西县18057099674: 如何在PHP里抓取HTTPS内容 -
乐哗奥扎: file_get_contents() 来获取API里提供的数据时,出现错误,使用的代码是这样的:<?php$data = file_get_contents(".firebaseio.com/v0/topstories.json?print=pretty"...

汾西县18057099674: php 用curl获取https地址 -
乐哗奥扎: 你就算是 注释1和注释2都没有他照样会有数据输出 因为 他默认是输出你获得到的数据 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//输出内容为字符串 你要加上上面这一句话 这样就不会输出获取到的数据

汾西县18057099674: 怎样用php获取当前时间'https'的内容,用传值的方式 -
乐哗奥扎: php用curl,在请求时携带:curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在

汾西县18057099674: php程序员用PHP如何实现https方式访问 -
乐哗奥扎: SSL证书安装到服务器环境里面安装的,不是安装到语言编程语言的.一、如果程序员要实现,具备一台独立服务器或云服务器.二、确定好需要实现HTTPS方式的域名(网址).三、登陆淘宝搜索:Gworg 获取SSL证书,办理认证手续.四、拿到证书安装到服务器就可以了,不会安装建议让签发机构安装.

汾西县18057099674: 怎样用PHP抓取整个网站的链接? -
乐哗奥扎: $html = file_get_html('http://www.google.com/');// Find all links foreach($html->find('a') as $element) echo $element->href . '<br>'; 不知道你PHP支持不支持 file_get_html这个函数 但是像你说那样的抓 肯定会超时的

汾西县18057099674: php如何获取调用页面的来源地址 -
乐哗奥扎: 使用PHP编写程序的时候,想要获取当前页面的URL,可以了用函数来实现;参考方法如下:php// 说明:获取完整URL function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on"){ $pageURL .= "s"; } $pageURL .= "://...

汾西县18057099674: 如何使用php判断服务器是否是HTTPS连接 -
乐哗奥扎: 需要判断代码运行环境是否是https服务器?下面的代码可以帮助你实现,非常简单 复制代码 代码如下: if ($_server['https'] != "on") { echo "this is not https";}else{echo "this is https";

汾西县18057099674: php判断服务器地址是否https -
乐哗奥扎: $a=$_SERVER['HTTP_REFERER'];//得到当前的URL地址$aa=stristr($a, 'http');//查找字符串http if ($aa != false) { echo '这个是http'; }else { echo '这个是https'; }

汾西县18057099674: PHP CodeIgniter框架中怎么获取当前页面的URL -
乐哗奥扎: /** * 获取当前页面完整URL地址 */ function get_url() { $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'; $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_...

汾西县18057099674: php怎么抓取某网页的某条超链接内容??
乐哗奥扎: 接收超链接用截取字符串方式截取即可

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网