调用方式 xxx.php?user=xxx
保证程序放的当前目录可写文件夹 可写文件
默认存放方式为
./用户名/相册1描述/图片描述-1.图片后缀
PHP Code复制内容到剪贴板
- <?php
- function open($host,$file){
- $return = "";
- $header = '';
- while($header!='200'){
- $fp = fsockopen($host, 80, $errno, $errstr, 30);
- if (!$fp) {
- echo "$errstr ($errno)<br />\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+(+[url]http://www.baidu.com/search/spider.htm[/url])\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)<br />\n";
- } else {
- $out = "GET $file HTTP/1.1\r\n";
- $out .= "Host: $host\r\n";
- $out .= "User-Agent: Baiduspider+(+[url]http://www.baidu.com/search/spider.htm[/url])\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."<br />\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<$allpic;$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 '<meta http-equiv="refresh" content="2;url=?aid='.$aid.'&user='.$user.'">';
- ?>
- <title>下载google相册</title>
- <form>
- <input name=user type=text>
- <input type=submit>
- </form>