不帅 发表于 2015-2-3 23:28:28

PHP网页设计分享一个PHP收集近程图片

学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...   

[*] <?php
[*] /*利用PHP完成收集近程图片功效。根基流程:
[*]   
[*] 1、获得方针网站图片地址。
[*]   
[*] 2、读取图片内容。
[*]   
[*] 3、创立要保留图片的途径并定名图片称号。
[*]   
[*] 4、写入图片内容。
[*]   
[*] 5、完成。
[*]   
[*] 咱们经由过程写几个函数来完成这一进程。*/
[*]   
[*] //函数make_dir()创立目次。判别要保留的图片文件目次是不是存在,假如不存在则创立目次,而且将目次设置为可写权限。
[*] function make_dir($path){   
[*]   if(!file_exists($path)){//不存在则创立   
[*]         $mk=@mkdir($path,0777); //权限   
[*]         @chmod($path,0777);   
[*]   }   
[*]   return true;   
[*] }   
[*]   
[*] //函数read_filetext()获得图片内容。利用fopen翻开图片文件,然后fread读取图片文件内容。
[*] function read_filetext($filepath){   
[*]   $filepath=trim($filepath);   
[*]   $htmlfp=@fopen($filepath,"r");   
[*]   //近程   
[*]   if(strstr($filepath,"://")){   
[*]         while($data=@fread($htmlfp,500000)){   
[*]             $string.=$data;   
[*]         }   
[*]   }   
[*]   //当地   
[*]   else{   
[*]         $string=@fread($htmlfp,@filesize($filepath));   
[*]   }   
[*]   @fclose($htmlfp);   
[*]   return $string;   
[*] }   
[*]   
[*]   
[*] //函数write_filetext()写文件,将图片内容fputs写入文件中,即保留图片文件。
[*] function write_filetext($filepath,$string){   
[*]   //$string=stripSlashes($string);   
[*]   $fp=@fopen($filepath,"w");   
[*]   @fputs($fp,$string);   
[*]   @fclose($fp);   
[*] }   
[*]   
[*]   
[*] //函数get_filename()获得图片称号,也能够自界说要保留的文件名。
[*] function get_filename($filepath){   
[*]   $fr=explode("/",$filepath);   
[*]   $count=count($fr)-1;   
[*]   return $fr[$count];   
[*] }   
[*]   
[*]   
[*] //然后将几个函数组合,在函数save_pic()中挪用,最初前往保留后的图片途径。
[*] function save_pic($url,$savepath=''){   
[*]   //处置地址   
[*]   $url=trim($url);   
[*]   $url=str_replace(" ","%20",$url);   
[*]   //读文件   
[*]   $string=read_filetext($url);   
[*]   if(emptyempty($string)){   
[*]         echo '读取不了文件';exit;   
[*]   }   
[*]   //文件名   
[*]   $filename = get_filename($url);   
[*]   //寄存目次   
[*]   make_dir($savepath); //创立寄存目次   
[*]   //文件地址   
[*]   $filepath = $savepath.$filename;   
[*]   //写文件   
[*]   write_filetext($filepath,$string);   
[*]   return $filepath;   
[*] }   
[*]   
[*]   
[*] //最初一步就是挪用save_pic()函数保留图片,咱们利用以下代码做测试。
[*] //方针图片地址   
[*] //$pic = "/program/UploadPic/2013-5/2013510152511166.jpg";   
[*] // for($i=100; $i<=204; $i++)
[*] // {
[*]   // $pic = 'http://cache.soso.com/img/img/e'.$i.'.gif';
[*] ////保留目次   
[*] // $savepath = "images/";   
[*] // echo save_pic($pic,$savepath)."<br />";   
[*] // }
[*]   
[*]   
[*] /*
[*] 实践使用中,咱们能够会收集某个站点的内容,好比产物信息,包含收集防盗链的图片保留到网站上办事器上。这时候咱们可使用正则婚配页面内容,将页面中相婚配的图片都找出来,然后分离下载到网站办事器上,完成图片的收集。以下代码仅供测试:
[*] */
[*] function get_pic($cont,$path){   
[*]   $pattern_src = '/<.*?src=http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0507/[/'/"](.*?(?:[/.gif/.jpg]))[\'\"].*?[\/]?>/';   
[*]   $num = preg_match_all($pattern_src, $cont, $match_src);   
[*]   $pic_arr = $match_src; //取得图片数组   
[*]   foreach ($pic_arr as $pic_item) { //轮回掏出每幅图的地址   
[*]         save_pic($pic_item,$path); //下载并保留图片   
[*]         echo "..!<br />";   
[*]   }   
[*] }   
[*]   
[*] //然后咱们经由过程剖析页面内容,将主体内容找出来,挪用get_pic()完成图片的保留。
[*]   
[*] //咱们收集宁靖洋电脑网上一篇关于手机报导内容页的图片php100.com
[*] $url = "http://gz.pconline.com.cn/321/3215791.html";   
[*]   
[*] $content = file_get_contents($url);//获得网页内容   
[*] $preg = '#<div class="art_con">(.*)<div class="ivy620 ivy620Ex"></div>#iUs';   
[*] preg_match_all($preg, $content, $arr);   
[*] $cont = $arr;   
[*] get_pic($cont,'img/');   
[*]   
[*] /*
[*] 以上代码笔者亲测,可以收集图片,然而还有些场景没思索出来,好比方针网站做了302屡次跳转的,方针网站做了多种防收集的,留给喜好折腾的同窗去尝尝吧。
[*] */
[*] ?>
怎样学习,大家都知道编程是1门很枯燥的事业,所以大家一定要有兴趣,可能刚开始打算学的时候是因为别人说php有多好,php多么流行,但是后来伴随着学习的深入,你的这些

小女巫 发表于 2015-2-3 23:30:35

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

再见西城 发表于 2015-2-7 18:00:32

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

愤怒的大鸟 发表于 2015-2-15 10:18:42

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

若天明 发表于 2015-2-18 12:27:40

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

小妖女 发表于 2015-2-25 23:20:07

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

山那边是海 发表于 2015-3-4 04:35:59

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

若相依 发表于 2015-3-11 16:44:21

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

飘灵儿 发表于 2015-3-15 15:01:04

基础有没有对学习php没有太大区别,关键是兴趣。

活着的死人 发表于 2015-3-22 01:29:09

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

仓酷云 发表于 2015-4-10 21:36:03

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

不帅 发表于 2015-4-10 23:08:47

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

简单生活 发表于 2015-4-15 13:22:46

写的比较杂,因为我也是个新手,不当至于大家多多指正。

再现理想 发表于 2015-4-16 13:35:29

写的比较杂,因为我也是个新手,不当至于大家多多指正。

柔情似水 发表于 2015-4-22 19:48:03

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

透明 发表于 2015-4-26 16:46:54

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

第二个灵魂 发表于 2015-4-29 17:18:08

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

分手快乐 发表于 2015-4-30 22:24:45

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

兰色精灵 发表于 2015-5-6 20:09:38

写的比较杂,因为我也是个新手,不当至于大家多多指正。

莫相离 发表于 2015-5-11 16:10:32

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
页: [1] 2
查看完整版本: PHP网页设计分享一个PHP收集近程图片