DISCUZ论坛批量采集头像思路和部分代码

0 个评论
这个看起来还不错,有机会试一下 研究了下头像部分 发现其实采集需要大中小三个图都采集过来  以下是dz官网的头像链接 http://uc.discuz.net/data/avatar/001/47/69/83_avatar_big.jpg http://uc.discuz.net/data/avatar/001/47/69/83_avatar_middle.jpg http://uc.discuz.net/data/avatar/001/47/69/83_avatar_small.jpg /001/47/69/83这是头像的所在目录 其实是用户的ID号1476983 也就是说一个ID是123的话会自动换算成/000/00/01/23的格式来保存 并且被采集的论坛上头像也不是所有用户都有 所以采集的序列并不是从1-999999999 但是保存到自己的站上要从1开始排序 这样才能保证所有用户都有头像 把ID转换成9位数再变成路径的代码 $i = 1; do{ $pwd = $i; $pwd = str_pad($pwd,9,"0",STR_PAD_LEFT); $pwd = trim(preg_replace('/^\d{1,3}|\d{2}/', '$0/', $pwd), '/'); echo $pwd . "<br/>"; $i++; } while($i < 1000); 再来发保存远程图片的代码      function get_file($url,$folder,$pic_name){          set_time_limit(24*60*60); //限制最大的执行时间         $destination_folder=$folder?$folder.'/':''; //文件下载保存目录         $newfname=$destination_folder.$pic_name;//文件PATH         $file=fopen($url,'rb');         if($file){                      $newf=fopen($newfname,'wb');             if($newf){                              while(!feof($file)){                                        fwrite($newf,fread($file,1024*8),1024*8);                 }             }             if($file){                              fclose($file);             }             if($newf){                              fclose($newf);             }         }           }       get_file("http://uc.discuz.net/data/avatar/000/00/08/59_avatar_middle.jpg","./file","baidu.jpg");   每    1000次sleep(5) 就可以了 防止卡 $i = 1; do{     $pwd = $i;     $pwd = str_pad($pwd,9,"0",STR_PAD_LEFT);     $pwd = trim(preg_replace(‘/^\d{1,3}|\d{2}/’, ‘$0/’, $pwd), ‘/’);         echo $pwd . "<br/>";     $i++; get_file("http://uc.discuz.net/data/avatar/".$pwd."_avatar_middle.jpg","./file","baidu.jpg"); if($i mod 1000 == 0)   sleep(5); } while($i < 1000);   从网上找了一份,但是速度真心慢如蜗牛啊!有没有其他方式写的案例? <? $url=$_GET['url']; $dir=$_GET['dir']; $uid=$_GET['uid']; $time=$_GET['time']; if(empty($time)){$time=0.1;} $mixuid=$_GET['mixuid']; $my404=file_get_contents("http://uc.discuz.net/data/avatar/1"); function createdir($dir){//创建文件夹   $edir = explode('/',$dir);   for($i=0;$i<count($edir);$i++){     $edirm = $edir[0];     for($ii=1;$ii<=$i;$ii++){       $edirm = $edirm.'/'.$edir[$ii];     }     if(file_exists($edirm) && is_dir($edirm)){     }else{        @mkdir ($edirm,0777);     }   } } $uids=$uid+1; if(empty($mixuid)){   echo <<<ETO <html> <body> <form name="search_form"> UC地址:<input size="24" name="url" value="http://uc.discuz.net">末尾不要带/<br /> 头像保存目录:<input size="24" name="dir" value="touxiang/">末尾要带/<br /> 开始UID:<input size="14" name="uid" value="1"><br /> 结束UID:<input size="14" name="mixuid" value="100"><br /> 采集间隔:<input size="14" name="time" value="1"><br /> <input type="submit" value="开始采集" ><br /> </from> </body> </html> ETO;   echo file_get_contents('touxiang_log.txt'); }else{   if($uid<=$mixuid){     echo <<<ETO <html> <body> <meta http-equiv="refresh" content="$time;url=?url=$url&dir=$dir&time=$time&uid=$uids&mixuid=$mixuid"> ETO;      //使用正则转换头像ID规则     $Uid=substr('00000000'.$uid,-9,9);     $img_id=preg_replace("/(\d{3})(\d{2})(\d{2})(\d{2})/i","$1/$2/$3/$4",$Uid);      //头像地址规则     $img_small=$img_id.'_avatar_small.jpg';     $img_middle=$img_id.'_avatar_middle.jpg';     $img_big=$img_id.'_avatar_big.jpg';      //设置头像绝对地址     $img_url_small=$url.'/data/avatar/'.$img_small;     $img_url_middle=$url.'/data/avatar/'.$img_middle;     $img_url_big=$url.'/data/avatar/'.$img_big;      //采集头像     $img_file_small=file_get_contents($img_url_small);     $img_file_middle=file_get_contents($img_url_middle);     $img_file_big=file_get_contents($img_url_big);      createdir(dirname($dir.$img_small));//创建头像目录,反之无权限写入      //保存头像     if($img_file_small==$my404){       echo $img_url_small.'采集失败<br />';     }else{      file_put_contents($dir.$img_small, $img_file_small);   echo $img_url_small.'采集成功<br /><img src="'.$dir.$img_small.'"><br /><br /><br />';     }     if($img_file_middle==$my404){      echo $img_url_middle.'采集失败<br />';     }else{   file_put_contents($dir.$img_middle, $img_file_middle);   echo $img_url_middle.'采集成功<br /><img src="'.$dir.$img_middle.'"><br /><br /><br />';     }     if($img_file_big==$my404){      echo $img_url_big.'采集失败<br />';     }else{   file_put_contents($dir.$img_big, $img_file_big);   echo $img_url_big.'采集成功<br /><img src="'.$dir.$img_big.'"><br /><br /><br />';     }      file_put_contents('touxiang_log.txt', '最后采集头像UID:'.$uid);//记录最后采集ID     echo <<<ETO </body> </html> ETO;   }else{     header("Location: ".$_SERVER['SCRIPT_NAME']);   } } ?>
2015-03-16 / 生活 / 2,633 views浏览
阅读全文

狗卵电信~我都不想说话了

0 个评论
2015-03-16 / 生活 / 2,312 views浏览
阅读全文

用chrome直接COPY的源码中表格自动添加了<tbody>

0 个评论
每次采集分析的时候,我喜欢用chrome定位需要的部分 然后直接COPY代码,这样很方便 但是今天采集内容的时候有表格,我用表格前后定位的时候 采集器采集不到内容,仔细一看,原来chrome会给表格添加<tbody> 导致和原来的代码不一样,结果自然没办法截取到自己需要的数据 以后碰到类似的场景就要记得去掉这个<tbody>和</tbody> 采集回复的话有可能有引用的,还是过滤掉比较好
2015-03-15 / 生活 / 2,549 views浏览
阅读全文

狗卵的电信

0 个评论
今天帮老客户弄论坛采集,测试了半天,老是出错 我用采集器的内置浏览器访问过几次都是正常的 采集列表那里本来都已经弄好了,保存了以后再打开,又不行了 我还一度怀疑这个采集器是不是弄得不好,兼容性不好 错了N次之后忽然碰到一次,用内置浏览器访问的时候,提示说访问不到那个网站 你吗的,我忽然反应过来,肯定是狗卵的电信DNS“出问题”了 然后我ping了一下,你吗的竟然提示找不到主机,也就是没有这个域名的解释信息 狗卵的电信又他吗做坏事了,弹广告我就不说了,你吗还不给别的站正常访问 然后我用站长站的ping工具ping了一下,大部分省份都能正常访问,只好修改了本地的HOST 狗卵的电信,这是要我自己弄DNS的节奏啊~ 看来以后要采集还得先把对方站先弄进本地HOST 强烈鄙视狗卵广西电信~~~~~~~~不做恶会死吗???????????????
2015-03-14 / 生活 / 2,322 views浏览
阅读全文

买了个卷尺才知道自己的穿衣规格

0 个评论
肩宽大概46.5CM 袖长62.5CM 这样的衣服穿起来才合适 以后买衣服还是得参照一下这个尺寸 发现不同品牌的衣服有可能码数一样,尺寸不一样的 62*2+46=170CM  估计在这个数字误差1CM范围内比较靠谱   20150323添加:今天有空又量了一下衬衫的 有一件明显显小,码数是170/92A,长袖是61cm,肩宽是43.5cm 比较合适的一件码数是175/92A,长袖61.5cm到62cm,肩宽是46.5cm到47cm 坑爹的是还有一件码数是一样的,长袖一样长,肩宽竟然是49cm,难怪我老觉得太宽了,不舒服
2015-03-14 / 生活 / 7,324 views浏览
阅读全文

让我好找,DZ3.2手机版允许注册选项在这里

0 个评论
 
2015-03-12 / 生活 / 1,808 views浏览
阅读全文

DiscuzBUG:关闭QQ互联时提示Incorrect signature

0 个评论
今天在本地测试了一下这个插件,我修改HOST随便绑定了一个米 启用正常,关闭的时候却提示Incorrect signature,你妹的垃圾腾讯 不过难不倒哥 我直接进数据库关掉算了 改为0就是关闭 1是开启这个插件
2015-03-11 / 生活 / 2,571 views浏览
阅读全文

打开DISCUZ x 3.2首页后,后面的后缀名“portal.php”能不能不出现

0 个评论
打开首页后,比如说,http://www.cc8090.com/portal.php  后面的后缀名“portal.php”能不能不出现 这样设置导航就可以了~
2015-03-11 / 生活 / 2,646 views浏览
阅读全文

今天才发现用火狐检查css错误蛮好用的

0 个评论
我记得以前chrome会提示错误的,但是新版貌似没有了,今天弄的站不能兼容ie,找了半天,在chrome里都找不到原因,迫不得已用火狐检查了一下,发现火狐吧把所有样式错误都列出来了,按照错误列表一个一个检查,很容易就解决了问题,熟悉了那个错误列表,一眼望去就能跳过一些常见火狐不兼容错误,找到真正的问题所在
2015-03-05 / 网站制作技术 / 2,286 views浏览
阅读全文

手机访问网站自动跳转到手机版

0 个评论
方法一: 目前很多网站已经出现了手机版的网站,手机网站是和互联网上的网站同步更新的,大多数人访问我们的网站是直接访问电脑上的域名,不可能为了手机网站重新记住一个域名,大家都知道,中国人都是比较懒的,那么遇到这个情况我们如何面对了,其实办法很简单就是在网站头加入一句判断语句,判断是手机访问网站时就自动跳入手机版,如果是电脑访问就显示正常版本的就可以了。 代码如下: <script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script><script type="text/javascript">uaredirect("你的手机版网址");</script> 这个是利用百度APP应用,做为一个跳转。 貌似它这个代码也没几行 我复制上来把 <script> function uaredirect(f){try{if(document.getElementById("bdmark")!=null){return}var b=false;if(arguments[1]){var e=window.location.host;var a=window.location.href;if(isSubdomain(arguments[1],e)==1){f=f+"/#m/"+a;b=true}else{if(isSubdomain(arguments[1],e)==2){f=f+"/#m/"+a;b=true}else{f=a;b=false}}}else{b=true}if(b){var c=window.location.hash;if(!c.match("fromapp")){if((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))){location.replace(f)}}}}catch(d){}}function isSubdomain(c,d){this.getdomain=function(f){var e=f.indexOf("://");if(e>0){var h=f.substr(e+3)}else{var h=f}var g=/^www\./;if(g.test(h)){h=h.substr(4)}return h};if(c==d){return 1}else{var c=this.getdomain(c);var b=this.getdomain(d);if(c==b){return 1}else{c=c.replace(".","\\.");var a=new RegExp("\\."+c+"$");if(b.match(a)){return 2}else{return 0}}}}; uaredirect("手机版网址"); </script> 方法二: 访问者如果是使用手机浏览器访问我们的站点,会受到一些限制,为此我们需要制作移动版本,并且在站点的首页加上判断,若访问者是用手机或者其它移动设备访问,页面自动跳转至wap页面。若是PC访问则打开正常页面。 当我用手机访问主站时( www.域名.com),则要求跳转到手机版网站去。 用到PHP自带的$_SERVER来判断。 具体代码如下: $agent = $_SERVER[‘HTTP_USER_AGENT’]; if(strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS")) header("Location:http://likinming.com/m/"); 这样就简单实现了手机访问自动跳转到手机版的效果。
2015-03-02 / 网站制作技术 / 2,913 views浏览
阅读全文