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多么流行,但是后来伴随着学习的深入,你的这些 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 基础有没有对学习php没有太大区别,关键是兴趣。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
页:
[1]
2