PHP CSS 파일 배경 이미지 다운로더 구현 코드

WBOY
풀어 주다: 2016-07-25 08:52:28
원래의
973명이 탐색했습니다.
  1. /**
  2. *@ATANG 2013-4-6 22:19
  3. *@哈哈
  4. */
  5. set_time_limit(0)
  6. error_reporting(E_ERROR)
  7. if ($argc<4){
  8. print_r('
  9. ---------------------------------- ---------------
  10. 사용법: php '.$argv[0].' CSS 경로 유형(0은 원격, 1은 로컬) CSS 파일 경로 이미지 저장 디렉터리
  11. 예:
  12. php.exe '.$argv[0].' 0 http://www.xxx.com/index.css 이미지
  13. -------------- ---------------------
  14. ');
  15. exit(); }
  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($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. $cssFile = file_get_contents($csspath);
  35. $images = array();
  36. preg_match_all("|url(. ))|i",$cssFile,$images); Images[1 ];
  37. return $images;
  38. }
  39. /*
  40. * CSS 파일 상대 디렉터리 처리 함수
  41. * $path 경로
  42. */
  43. function getNocssPath($ path){
  44. global $host;
  45. $tempLinkmages=''; =1; $i<(count($tempPath)-2);$i ){
  46. $tempLinkmages .= $tempPath[$i].'/'
  47. }
  48. $xdImage = $host .$tempLinkmages ;
  49. return $xdImage;
  50. //등가 경로 가져오기
  51. }
  52. /*
  53. * 이미지 연결 획득 기능
  54. * $images 배열 모든 이미지 배열
  55. * cssLink CSS 파일 링크
  56. */
  57. function getImagesLinks($imagesArray,$cssLink){
  58. global $host;
  59. $urlImages = array(); > foreach($imagesArray as $key=>$value){
  60. if(pathCheck($value)){
  61. if((!in_array(($host.$value),$urlImages))){
  62. $urlImages[ $key] = $host.$value;
  63. }
  64. }else{
  65. if((!in_array((getNocssPath(getParse($cssLink,'path'))).$ value),$urlImages) )){
  66. $urlImages[$key] = getNocssPath(getParse($cssLink,'path')).$value;
  67. }
  68. }
  69. }
  70. return $urlImages;
  71. }
  72. /*
  73. * 이미지 획득
  74. * $urlImages 다운로드할 이미지 배열
  75. */
  76. function ImagesDowner($urlImages){
  77. //print_r($ urlImages);
  78. foreach($urlImages as $key=>$value){
  79. $urlImagesOk[$key] = str_replace('//','/',$value );
  80. $urlImagesOk [$key] = str_replace('"','',$urlImagesOk[$key]);
  81. $urlImagesOk[$key] = str_replace("'",'',$urlImagesOk [$key]);
  82. $urlImagesOk[$key] = 'http://'.$urlImagesOk[$key]
  83. if(grabImage($urlImagesOk[$key],basename($urlImagesOk[$ key]))){
  84. print_r(
  85. basename($urlImagesOk[$key]).' 파일이 성공적으로 다운로드되었습니다.
  86. ')
  87. }else{
  88. print_r(
  89. basename( $urlImagesOk[$key]) .' 다운로드 실패
  90. ');
  91. }
  92. }
  93. //print_r($urlImagesOk)
  94. }
  95. /* 상대 경로 절대 경로 결정 함수
  96. * $imageUrl 이미지 링크 배열
  97. * true는 절대 경로
  98. * false는 등가 경로
  99. */
  100. function pathCheck($imageUrl){
  101. if(preg_match('|^(// )|',$imageUrl)){
  102. true를 반환합니다.
  103. }else{
  104. false를 반환합니다.
  105. }
  106. }
  107. /*
  108. * 이미지 다운로드 기능
  109. * $url 이미지 링크
  110. * $filename 이미지 이름
  111. */
  112. function GrabImage($url, $filename){
  113. global $savePath ;
  114. if($url == '') {
  115. return false; //$url이 비어 있으면 false를 반환합니다.
  116. }
  117. $ext_name = strrchr($url, ' .'); //이미지 이름의 확장자를 가져옵니다
  118. if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != ' .png') {
  119. return false; / /형식이 허용된 범위를 벗어났습니다.
  120. }
  121. if($filename == '') {
  122. return false; 이름이 잘못되었습니다
  123. }
  124. //캡처 시작
  125. ob_start()
  126. if(readfile($url)){
  127. $img_data = ob_get_contents()
  128. ob_end_clean ();
  129. $size = strlen($img_data);
  130. }else{
  131. ob_end_clean()
  132. return false;
  133. if(($local_file = fopen($savePath.$filename , 'a'))&&(fwrite($local_file, $img_data)))
  134. {
  135. fclose($local_file);
  136. true를 반환합니다.
  137. }
  138. }
  139. /*
  140. * 保存目录
  141. */
  142. function getSavePath($savepath){
  143. $savePath = $savepath;
  144. $savePath = dirname(__FILE__).$savePath;
  145. $savePath를 반환합니다.
  146. }
  147. /*
  148. * 解析url
  149. */
  150. function getParse($host,$type){
  151. $baseurl =parse_url($host);
  152. $baseurl[$type]을 반환합니다.'/';
  153. //echo $baseurl;
  154. }
  155. ?>
复主代码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!