php css檔案背景圖片下載器實作程式碼

WBOY
發布: 2016-07-25 08:52:28
原創
973 人瀏覽過
  1. /**
  2. *@阿唐 2013-4-6 22:19
  3. *@呵呵
  4. */
  5. set_time_limit(0);
  6. error_reporting(E_ERROR);
  7. if( $argcprint_r('
  8. ----------------------------------- --------------
  9. Usage: php '.$argv[0].' css路徑類型(0為遠端、1為本地) css檔案路徑圖片儲存目錄
  10. Example:
  11. php.exe '.$argv[0].' 0 http://www.xxx.com/index.css images
  12. --------------- ----------------------------------
  13. ');
  14. exit();
  15. }
  16. //遠端css
  17. if($argv[1]==0){
  18. $host = getParse($argv[2],'host');
  19. $savePath = getSavePath( $argv[3]);
  20. $images = getCssImagesArray($argv[2]);
  21. //print_r($images);
  22. $imagesurls = getImagesLinks($images,$argv[2]) ;
  23. imagesDowner($imagesurls);
  24. }
  25. //本地css開始
  26. if($argv[1]==1){
  27. //懶得寫了,呵呵,這個沒多大意義
  28. }
  29. /*
  30. * css圖片分析函數
  31. * $csspath css檔路徑
  32. */
  33. function getCssImagesArray($csspath){
  34. $gets = file_filep_File ($csspath);
  35. $images = array();
  36. preg_match_all("|url((. ))|i",$cssFile,$images);
  37. $images = $images[1] ;
  38. return $images;
  39. }
  40. /*
  41. * css檔案相對目錄處理函數
  42. * $path 路徑
  43. */
  44. function getNocssPath($path){ global $host;
  45. $tempLinkmages='';
  46. //相當路徑取得
  47. $tempPath = explode('/',$path);
  48. for($i=1;$ i $tempLinkmages .= $tempPath[$i].'/';
  49. }
  50. $xdImage = $host.$tempLinkmages;
  51. return $xdImage;
  52. //相當路徑獲取
  53. }
  54. /*
  55. * 圖片連接取得函數
  56. * $images array 所有需要取得的images數組
  57. * cssLink css檔案連結
  58. */
  59. function getImagesLinks($imagesArray,$cssLink){
  60. global $host;
  61. $urlImages = array(); foreach($imayray as $as key=>$value){
  62. if(pathCheck($value)){
  63. if((!in_array(($host.$value),$urlImages))){
  64. $urlImages[$key ] = $host.$value;
  65. }
  66. }else{
  67. if((!in_array((getNocssPath(getParse($cssLink,'path')).$value),$urlImages))) {
  68. $urlImages[$key] = getNocssPath(getParse($cssLink,'path')).$value;
  69. }
  70. }
  71. }
  72. return $urlI>}
  73. }
  74. }
  75. return $urlI>}
  76. };
  77. /*
  78. * 圖片取得
  79. * $urlImages需要下載的圖片陣列
  80. */
  81. function imagesDowner($urlImages){
  82. //print_r($urlImages) ;
  83. foreach($urlImages as $key=>$value){
  84. $urlImagesOk[$key] = str_replace('//','/',$value);
  85. $urlImagesOk[$key ] = str_replace('"','',$urlImagesOk[$key]);
  86. $urlImagesOk[$key] = str_replace("'",'',$urlImagesOk[$key]);
  87. $ urlImagesOk[$key] = 'http://'.$urlImagesOk[$key];
  88. if(grabImage($urlImagesOk[$key],basename($urlImagesOk[$key]))){
  89. print_r (
  90. basename($urlImagesOk[$key]).' 檔案下載成功
  91. ');
  92. }else{
  93. print_r(
  94. basename($urlImagesOk[$key]).' 下載失敗
  95. ');
  96. }
  97. }
  98. //print_r($urlImagesOk);
  99. }
  100. /*
  101. * 相對路徑絕對路徑判定函數
  102. * $ imageUrl 圖片連結陣列
  103. * true 為絕對路徑
  104. * false 為相當路徑
  105. */
  106. function pathCheck($imageUrl){
  107. if(preg_match('|^(/)|' ,$imageUrl)){
  108. return true;
  109. }else{
  110. return false;
  111. }
  112. }
  113. /*
  114. * 圖片下載函數
  115. * $url 圖片連結
  116. * $filename圖片名字
  117. */
  118. function grabImage($url, $filename){
  119. global $savePath;
  120. if($url == '') {
  121. return false; //如果$url 為空則回傳false;
  122. }
  123. $ext_name = strrchr($url, '.'); //取得圖片的副檔名
  124. if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {
  125. return false; //格式不在允許的範圍
  126. }
  127. if($filename == '') {
  128. return false; //名稱無效
  129. }
  130. //開始捕捉
  131. ob_start();
  132. if(readfile($url)){
  133. $img_data = ob_get_contents();
  134. ob_end_clean();
  135. $size = strlen($img_data);
  136. }else {
  137. ob_end_clean(); return false; }
  138. if(($local_file = fopen($savePath.$filename , 'a'))&&(fwrite($local_file, $img_data)))
  139. {
  140. fclose($local_file);
  141. 回傳true;
  142. }
  143. }
  144. /*
  145. * 儲存目錄
  146. */
  147. function getSavePath($savepath){
  148. $savePath = $savepath
  149. ;
  150. ; savePath = 目錄名(__FILE__).$savePath;
  151. 回傳$savePath;
  152. }
  153. /*
  154. * 解析url
  155. */
  156. function getParse($host,$type) {
  157. $baseurl = parse_url($host);
  158. 回傳$baseurl[$type].'/';
  159. //echo $baseurl;
  160. }
?>
複製程式碼


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!