亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php 獲取網頁內的圖片地址正則表達式

2024-09-04 11:47:24
字體:
來源:轉載
供稿:網友

獲取網頁中的圖片地址并保存下載我們需要采集頁面,然后再利用正則表達式獲取頁面中的圖片url,然后我們再通過相關的php函數把圖片保存到指定本地硬盤了.

1.獲取地址

這個功能最主要的就是用正則表達式來匹配頁面源碼里的圖片地址了,這里用到得正則表達式是:

/<img.*src="(.*)"/s*.*>/iU

首先通過PHP自帶的讀取文件函數來獲得請求頁面的html代碼,然后用正則表達式來匹配里面的src地址,這里有兩個注意點:

file_get_content

只能獲取到靜態的頁面內容,也就是說如果你在頁面里看到的是圖片是通過Javascript來展示的,通過這個工具是獲取不到圖片信息的.

有的網站對file_get_content 這個函數做了些限制,如果不是通過瀏覽器打開的網頁,服務器是拒絕請求的,這個時候我們就需要給php 程序添加一個配置信息,讓采集的程序能夠模擬一個留言器的UA(user agent),具體的做法可以通過下面的代碼來實現://現在模擬的是一個Window 環境下的瀏覽器

ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');

通過以上兩點的處理,獲取網頁源碼就沒有問題了,唯一要做的就是用正則表達式對圖片地址的匹配.

例子1,代碼如下:

  1. /** 
  2.  * 獲取替換文章中的圖片路徑 
  3.  * @param string $xstr 內容 采集網頁的content 
  4.  * @param string $keyword 創建照片的文件名 我寫upimg 
  5.  * @param string $oriweb 網址 一般寫null 
  6.  * @return string 
  7.  *  
  8.  */ 
  9. function replaceimg($xstr,$keyword$oriweb){  
  10.  $basedir = dirname(__FILE__); 
  11.  
  12.     //保存路徑 
  13.     $d = date('Ym', time()); 
  14.     $dirslsitss = $basedir.'/../uploads/'.$keyword.'/'.$d;//分類是否存在 
  15.     if(!is_dir($dirslsitss)) { 
  16.         @mkdir($dirslsitss, 0777); 
  17.     } 
  18.  
  19.     //匹配圖片的src 
  20.     preg_match_all('#<img.*?src="([^"]*)"[^>]*>#i'$xstr$match); 
  21.  
  22.     foreach($match[1] as $imgurl){ 
  23.  
  24.         $imgurl = $imgurl
  25.  
  26.         if(is_int(strpos($imgurl'http'))){ 
  27.             $arcurl = $imgurl
  28.         } else { 
  29.             $arcurl = $oriweb.$imgurl;         
  30.         } 
  31.         $img=file_get_contents($arcurl); 
  32.  
  33.  
  34.         if(!emptyempty($img)) { 
  35.  
  36.             //保存圖片到服務器 
  37.             $fileimgname = time()."-".rand(1000,9999).".jpg"
  38.             $filecachs=$dirslsitss."/".$fileimgname
  39.             $fanhuistr = file_put_contents$filecachs$img ); 
  40.             $saveimgfile = "/uploads/$keyword"."/".$d."/".$fileimgname
  41.  
  42.  
  43.             $xstr=str_replace($imgurl,$saveimgfile,$xstr); 
  44.         } 
  45.     } 
  46.     return $xstr

可能有些朋友也知道file_get_contents性能不怎么樣,我們可使用curl來獲取,代碼如下:

  1. /* 
  2. *功能:php完美實現下載遠程圖片保存到本地 
  3. *參數:文件url,保存文件目錄,保存文件名稱,使用的下載方式 
  4. *當保存文件名稱為空時則使用遠程文件原來的名稱 
  5. */ 
  6. function getImage($url,$save_dir='',$filename='',$type=0){ 
  7.     if(trim($url)==''){ 
  8.   return array('file_name'=>'','save_path'=>'','error'=>1); 
  9.  } 
  10.  if(trim($save_dir)==''){ 
  11.   $save_dir='./'
  12.  } 
  13.     if(trim($filename)==''){//保存文件名 
  14.         $ext=strrchr($url,'.'); 
  15.         if($ext!='.gif'&&$ext!='.jpg'){ 
  16.    return array('file_name'=>'','save_path'=>'','error'=>3); 
  17.   } 
  18.         $filename=time().$ext
  19.     } 
  20.  if(0!==strrpos($save_dir,'/')){ 
  21.   $save_dir.='/'
  22.  } 
  23.  //創建保存目錄 
  24.  if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){ 
  25.   return array('file_name'=>'','save_path'=>'','error'=>5); 
  26.  } 
  27.     //獲取遠程文件所采用的方法  
  28.     if($type){ 
  29.   $ch=curl_init(); 
  30.   $timeout=5; 
  31.   curl_setopt($ch,CURLOPT_URL,$url); 
  32.   curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
  33.   curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
  34.   $img=curl_exec($ch); 
  35.   curl_close($ch); 
  36.     }else
  37.      ob_start();  
  38.      readfile($url); 
  39.      $img=ob_get_contents();  
  40.      ob_end_clean();  
  41.     } 
  42.     //$size=strlen($img); 
  43.     //文件大小  
  44.     $fp2=@fopen($save_dir.$filename,'a'); 
  45.     fwrite($fp2,$img); 
  46.     fclose($fp2); 
  47.  unset($img,$url); 
  48.     return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲大胆人体在线| 另类图片亚洲另类| 欧洲成人午夜免费大片| 欧美成人精品在线视频| 亚洲欧美日韩一区二区三区在线| 亚洲在线第一页| 91精品国产91久久久久久久久| 欧美国产激情18| 国产91久久婷婷一区二区| 亚洲精品日产aⅴ| 91久久在线视频| 国内精品模特av私拍在线观看| 亚洲人成网7777777国产| 精品日韩美女的视频高清| 亚洲高清福利视频| 亚洲小视频在线| 亚洲毛片在线免费观看| 欧美xxxwww| 国产精品第三页| 欧美高清电影在线看| 国产精品你懂得| 国产日韩换脸av一区在线观看| 精品在线欧美视频| 国内精品一区二区三区四区| 精品国产一区av| 亚洲精品久久在线| 亚洲精品免费网站| 韩国福利视频一区| 亚洲一区中文字幕| 搡老女人一区二区三区视频tv| 亚洲精品第一国产综合精品| 555www成人网| 大伊人狠狠躁夜夜躁av一区| 欧美成人免费在线视频| 久久精品视频中文字幕| 国产成人avxxxxx在线看| 97在线免费视频| 欧美激情视频网站| 国产精品成人播放| 日韩精品视频免费| 国产欧美日韩中文字幕在线| 国产精品爽爽爽爽爽爽在线观看| 欧美日韩免费一区| 丰满岳妇乱一区二区三区| 美女久久久久久久久久久| 国产精品爱久久久久久久| 久久久久久久一区二区三区| 国产日韩欧美自拍| 国产精品xxx视频| 夜夜躁日日躁狠狠久久88av| 亚洲精品成人久久| 欧美福利视频在线| 高清欧美电影在线| 久久久999国产| 亚洲第一二三四五区| 欧美一区二区三区免费视| 精品国偷自产在线视频| 精品精品国产国产自在线| 伊人久久久久久久久久久| 91免费版网站入口| 亚洲xxx大片| 久久夜色精品国产亚洲aⅴ| 欧美日韩在线免费观看| 日韩大陆欧美高清视频区| 亚洲欧美日韩国产中文| 久久久国产精彩视频美女艺术照福利| 中文字幕视频在线免费欧美日韩综合在线看| 中文字幕国产精品| 亚洲精品久久久一区二区三区| 精品久久久久久电影| 欧美成人午夜激情视频| 欧美性xxxxxxxxx| 亚洲图片在区色| 亚洲图片欧美日产| 欧美国产高跟鞋裸体秀xxxhd| 色av中文字幕一区| 欧美极品少妇xxxxⅹ喷水| 国产日韩欧美黄色| 亚洲精品视频免费| 日韩在线欧美在线| 国产一区二区三区网站| 亚洲白虎美女被爆操| 国产精品黄色av| 91精品久久久久久久久久久久久久| 欧美高清第一页| 欧美日韩免费看| 亚洲综合中文字幕在线观看| 国产日韩欧美91| 91高潮在线观看| 久久69精品久久久久久久电影好| 精品久久久久久中文字幕大豆网| 久久成人精品电影| 91精品啪aⅴ在线观看国产| 91精品国产91久久久久久最新| 亚洲国产成人精品女人久久久| 欧美精品性视频| 日韩网站免费观看高清| 5566成人精品视频免费| 欧美日韩精品国产| 久久久97精品| 久久久久中文字幕2018| 国产亚洲精品综合一区91| 国产精品美女无圣光视频| 最新69国产成人精品视频免费| 97精品伊人久久久大香线蕉| 欧美日韩成人精品| 91麻豆国产语对白在线观看| 欧美午夜xxx| 成人国产精品一区二区| 久久国产精品久久久| 亚洲成人性视频| 久久99久久久久久久噜噜| 国模精品视频一区二区| 最新69国产成人精品视频免费| 国产亚洲欧美日韩精品| 欧美在线视频免费播放| 成人激情视频免费在线| 亚洲 日韩 国产第一| 日韩视频在线一区| 日本高清不卡在线| 久久久精品一区二区三区| 国外日韩电影在线观看| 成人精品一区二区三区电影黑人| 国产精品丝袜一区二区三区| 亚洲色图25p| 国产精品 欧美在线| 97视频在线观看免费高清完整版在线观看| 日韩欧美国产免费播放| 国产一区二区在线播放| 91精品久久久久久久久久久久久久| 国产视频久久网| 久久夜色撩人精品| 国外色69视频在线观看| 欧美大成色www永久网站婷| 国产成人a亚洲精品| 欧美高清一级大片| 神马国产精品影院av| 日韩精品欧美国产精品忘忧草| 98午夜经典影视| 亚洲免费av片| 国产男人精品视频| 国外成人在线播放| 富二代精品短视频| 亚洲综合在线做性| 欧美在线亚洲在线| 57pao成人国产永久免费| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品视频网| 亚洲精品日产aⅴ| 日韩电影在线观看永久视频免费网站| 久久久久99精品久久久久| 国产视频欧美视频| 欧美日韩国产一区中文午夜| 91在线精品播放| 日韩最新在线视频| 少妇高潮 亚洲精品| 成人黄色免费网站在线观看| 久精品免费视频| 亚洲欧美在线一区| 中文字幕亚洲专区| 日韩黄在线观看| 欧美日韩中文字幕| 国产精品视频精品视频| 国产精品视频在线播放|