调用方式 xxx.php?user=xxx

保证程序放的当前目录可写文件夹 可写文件

默认存放方式为

./用户名/相册1描述/图片描述-1.图片后缀

function open($host,$file){

$return = "";

$header = '';

while($header!='200'){

$fp = fsockopen($host, 80, $errno, $errstr, 30);

if (!$fp) {

echo "$errstr ($errno)

\n";

} else {

$out = "GET $file HTTP/1.1\r\n";

$out .= "Host: $host\r\n";

$out .= "P3P: CP=\"CAO PSA OUR\"\r\n";

$out .= "User-Agent: Baiduspider+(+http://www.baidu.com/search/spider.htm)\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

while (!feof($fp)) {

$return .= fgets($fp,1024);

}

fclose($fp);

}

PReg_match("/HTTP\/1.1 (.*?) OK/",$return,$output);

$header = $output[1];

}

preg_match("/\r\n\r\n(.+)/is", $return, $out);

$return = $out[1];

return mb_convert_encoding($return, "GB2312", "UTF-8");;

}

function openimg($host,$file){

$return = "";

$header = '302';

while($header=='302'){

$fp = fsockopen($host, 80, $errno, $errstr, 30);

if (!$fp) {

echo "$errstr ($errno)

\n";

} else {

$out = "GET $file HTTP/1.1\r\n";

$out .= "Host: $host\r\n";

$out .= "User-Agent: Baiduspider+(+http://www.baidu.com/search/spider.htm)\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

while (!feof($fp)) {

$return .= fgets($fp,1024);

}

fclose($fp);

}

preg_match("/HTTP\/1.0 (.*?) /",$return,$output);

$header = $output[1];

}

preg_match("/\r\n\r\n(.+)/is", $return, $out);

$return = $out[1];

if($header=='404') $return='';

return $return;

}

function img($host,$file,$dir,$name){

$data = openimg($host,$file);

// echo $dir;

$blankimg = '../images/blank.jpg';

$filename = $dir.'/'.$name;

// echo $filename;

if(!is_dir($dir)){

if(!mkdir($dir)) die('create dir error');

}

// echo $data;

if (!$handle = fopen($filename, 'w+')) {

echo "can't open $filename";

exit;

}

if (fwrite($handle, $data) === FALSE) {

echo "can't write $filename";

exit;

}

// echo "write to $filename done";

fclose($handle);

echo $filename."

\r\n";

}

$aid = ($_GET['aid']!='')?$_GET['aid']:0;

$user = $_GET['user'];

if(!is_dir($user)){

if(!mkdir($user)) die('create dir error');

}

if($user=='') die("user string can't be blank");

$userstr = '/'.$user.'/';

$html = str_replace("'",'',open('picasaweb.google.com',$userstr));

preg_match_all("/,access:public\n,title:(.*?)\n,url:(.*?)\n,src/s",$html,$album);

$all = count($album[1]);

if($aid>$all) die('OK');

$aurl = str_replace('\x2F','/',$album[2][$aid]);

$astr = './'.$user.'/'.$album[1][$aid];

$afile = str_replace('http://picasaweb.google.com','',$aurl);

$html = str_replace('$','',open('picasaweb.google.com',$afile));

preg_match_all("/\"summarytype\":\"text\",\"summary\":\"(.*?)\",\"contenttype\":\"(.*?)\",\"contentsrc\":\"(.*?)\",\"link\":/s",$html,$pics);

$allpic = count($pics[3]);

for($i=0;$i

$pic = $pics[3][$i];

$typetemp = explode('.',$pic);

$type = $typetemp[(count($typetemp)-1)];

$pname = $pics[1][$i].'-'.$i.'.'.$type;

$temp = explode('ggpht.com',$pic);

$imGhost = str_replace('http://','',$temp[0].'ggpht.com');

$imgfile = $temp[1];

img($imghost,$imgfile,$astr,$pname);

}

$aid++;

echo '';

?>

下载google相册

作者:落伍 山贼

php中文学习网的教程怎么样,PHP下载google相册到本地相关推荐

  1. 【特别推荐】Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  2. 服务器amp状态是什么意思,「理解HTTP」之常见的状态码 amp;#8211; 魅族科技开发团队 amp;#8211; SegmentFault---HTML5中文学习网...

    状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误.JRGHTML5中文学习网 - HTML5先行者学习网 RFC261 ...

  3. java视频学习网(java教程视频网)

    免费少儿英语学习网上有视频吗?网址是多少? ?gourl=http%3A%2F%2Fwww.unibest.net.cn 广州少儿英语培训 潍坊干部学习网-潍坊干部学习网视频播放需什么软?潍坊干部学习 ...

  4. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全

    史上最牛的Linux内核学习方法论   点击下载 我的arm_linux移植笔记   点击下载 S3C2440完全开发流程   点击下载 Linux系统命令及其使用详解完整版   点击下载 Linux ...

  5. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全...

    史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux主要shell命 ...

  6. ltspice语言中文_LTspice下载|LTspice(电路仿真软件)下载v4.14r 中文免费版 附安装教程 - 欧普软件下载...

    LTspice软件是一款功能强大的电路仿真软件,内置多种电路图仿真实例,可以进行Spice III 仿真器.电路图捕获和波形观测器,可以大大简化开关稳压器的仿真提供了改进和模型.软件功能强大,操作简单 ...

  7. LaTeX中文学习教程 笔记

    视频地址: LaTeX中文学习教程(用于论文或稿件排版,15集全) 用LaTeX写期刊论文的详细教程 一.基本结构 % 导言区 \documentclass{article}%book,article ...

  8. icepak中文学习教程

    ## 标题:ICEPAK中文学习教程网址## 适合新手学习的icepak教程,有无帮助点击进去学习,即可知. ICEPAK中文学习教程:http://www.docin.com/p-315864598 ...

  9. python写脚本入门-学习Python的教程?:python 脚本菜鸟教程

    学习Python的教程? Python作为一门面向对象的性语言,其实它的学习也很简单 - 配置 - Python基础(语法..数据类型.高级变量.函数.Python高级特性) - 面向对象编程.面向对 ...

最新文章

  1. C++ template
  2. 模板 - 二分图(包含全套常用定理性质)
  3. keras 等深度学习官网文档 API
  4. 输入任意长度的字符串,反向输出(递归)
  5. 【算法】蓝桥杯dfs深度优先搜索之排列组合总结
  6. HTML+CSS+JS实现 ❤️canvas酷炫表白爱心动画❤️
  7. 佳能MP259打印重影的问题始终无法得到彻底解决,今天终于找到方法了
  8. 我心目中的支付宝架构
  9. SSCOM的模拟连接测试及服务器连接
  10. 小学三年级计算机认识键盘教案,第8课 认识键盘大家庭 教案
  11. 选择交换法排序c语言程序,C语言排序算法之简单交换法排序,直接选择排序,冒泡排序...
  12. ArcGIS中消除两幅卫星影像之间色带问题
  13. android+桌面组件开发,android——桌面组件的开发
  14. 王者荣耀是如何从C++代码变到游戏的?
  15. 计算机操作培训图片,【图片】计算机学习之旅【汇编吧】_百度贴吧
  16. 《软件功能测试自动化实战教程》—第6章6.5节使用环境变量的参数化
  17. Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此
  18. 大学计算机应用实验项目综合报告书,大学计算机应用基础实验报告册_2010版_.doc...
  19. 通达信交易接口如何确保数据的完整性的?
  20. Tensorflow2.0 使用Kera 迭代器 加载图像分割训练集

热门文章

  1. css文字超长显示...
  2. vue缺省页面处理,找不到页面处理
  3. Bailian3753 反转诗句【文本处理】
  4. 大学社团管理系统——开题报告
  5. 中小互联网软件公司的骗局--培训机构的可恶套路
  6. phpcmsv9开发文档
  7. [C/C++]随机生成信息,并保存到文件中
  8. MTK平台使用代码对GPIO管脚进行设置
  9. 电信aep平台是什么意思_杠杆股票配资平台米牛金融股票配资线上炒股配资公司:现代场内与场外配资是什么意思...
  10. Discuz的一处越权操作,强制回复无权限帖子