ホームページ >バックエンド開発 >PHPチュートリアル >PHP画像収集プログラム -- 画像収集クラス

PHP画像収集プログラム -- 画像収集クラス

WBOY
WBOYオリジナル
2016-07-25 09:02:081155ブラウズ
コードは私のブログから引用しています。 http://www.taoniwu.com/archives/3234.html 何か良い提案がありましたら、よろしくお願いします~~~~~
  1. ?class Collection{
  2. protected $url; // コレクションのアドレス
  3. protected $prefix; // ファイルの名前を変更します
  4. protected $style; // 収集する画像形式を配列で渡します。
  5. const prel = '/(?:http?|https?)://(?:[^./()?]+).(?:[^./]+).(?:com|cn| net|org)/(?:[^.:"'()?]+).(jpg|png|gif)/i'; //コレクションルール
  6. //コンストラクター関数
  7. function __construct($url,$prefix) ,$style){
  8. switch($this->checkdata($url,$prefix,$style)){
  9. case 1:
  10. echo '<script>alert("コレクションのアドレスを空にすることはできません!")&lt ; /script>';</li> <li> exit;</li> <li> Break;</li> <li> case 2:</li> <li> echo '<script>alert("収集する画像形式は配列である必要があります!")</script>';
  11. exit;
  12. Break;
  13. case 3:
  14. echo '<script>alert("収集する必要のある画像形式を空にすることはできません!")</script>';
  15. exit;
  16. Break;
  17. case 4:
  18. echo ' <script>alert("ファイル名に . / | を含めることはできません!")</script>';
  19. exit;
  20. }
  21. $this->url = $url;
  22. $this- >prefix = $prefix ;
  23. $this->style = $style;
  24. }
  25. //データ収集開始
  26. public function action(){
  27. $url = $this->checkurl();
  28. $imgurl = $this->collecturl ($url);
  29. $this->savafile($imgurl);
  30. }
  31. //URL処理
  32. 保護関数checkurl(){
  33. $munprel = '/([0-9]+ ,[0-9] +)/i';
  34. $myurl;
  35. if(preg_match($munprel,$this->url,$arr)){
  36. $temp = substr($arr[0],1, strlen($arr[0 ])-2);
  37. $mymunber =explode(',',$temp);
  38. $temparr =explode($arr[0],$this->url);
  39. for($ i=$mymunber[0 ];$i $myurl[] = $temparr[0].$i.$temparr[1];
  40. }
  41. }else{
  42. $myurl = $this- >url;
  43. }
  44. return $myurl;
  45. }
  46. //ファイル保存
  47. 保護関数 savafile($imgurl){
  48. if(!empty($imgurl)){
  49. foreach($imgurl[ 0] as $key= >$value){
  50. $filename = '';
  51. if(in_array($imgurl[1][$key],$this->style)){
  52. $size = @getimagesize( $value);
  53. if ($size === false){
  54. continue;
  55. }
  56. list($w,$h,$t,$a) = $size;
  57. if($w<200 || $h
  58. 続行 ;
  59. }
  60. ob_start();
  61. readfile($value);
  62. $obj = ob_get_contents();
  63. ob_end_clean();
  64. $dir = 'F:/php/';
  65. if(! is_dir($dir)) {
  66. mkdir($dir,0777);
  67. }
  68. if(!empty($this->prefix)){
  69. $filename = $dir.$this->prefix.date(' Ymd').rand( 10000,99999).'.'.$imgurl[1][$key];
  70. }else{
  71. $filename = $dir.date('Ymd').rand(10000,99999)。 '.'.$imgurl [1][$key];
  72. }
  73. $fo = @fopen($filename,'wb');
  74. if($fo === false){
  75. echo '<script>alert (「ファイルの作成に失敗しました。ファイル ディレクトリに書き込めません! ")</script>';
  76. exit;
  77. }
  78. $fw = fwrite($fo,$obj);
  79. echo '
    '。 $filename.'コレクション成功
    ';
  80. }
  81. }
  82. }
  83. }
  84. //画像サフィックス名を含むアドレス収集関数
  85. protected functioncollecturl($url){
  86. set_time_limit(0);
  87. if ( is_array($url)){
  88. $arr = array();
  89. $imgkey = array();
  90. foreach($url as $value){
  91. $code = file_get_contents($value);
  92. preg_match_all(self:: prel ,$code,$arrimg);
  93. $arr = array_merge($arr,$arrimg[0]);
  94. $imgkey = array_merge($imgkey,$arrimg[1]);
  95. }
  96. return array($arr, $ imgkey);
  97. }else{
  98. $code = file_get_contents($url);
  99. preg_match_all(self::prel,$code,$arrimg);
  100. return $arrimg;
  101. }
  102. }
  103. //チェックデータ
  104. プライベート関数checkdata ($url,$prefix,$style){
  105. if(empty($url)){
  106. return 1;
  107. }elseif(!is_array($style)){
  108. return 2;
  109. }elseif(count($style ) ==0){
  110. return 3;
  111. }elseif(stripos($prefix,'.') !== false || Stripeos($prefix,'/') !== false || Stripeos($prefix,' | ') !== false){
  112. return 4;
  113. }
  114. }
  115. }
  116. ?>
コードをコピー
    class Collection{
  1. protected $url; // コレクションのアドレス
  2. protected $prefix; // ファイルの名前を変更
  3. protected $style; // 収集する画像形式を配列で渡します
  4. const prel = '/ (?:http?|https?)://(?:[^./()?]+).(?:[^./]+).(?:com|cn|net|org)/( ?:[^.:"'()?]+).(jpg|png|gif)/i'; //コレクションルール
  5. //コンストラクター関数
  6. function __construct($url,$prefix,$style){
  7. switch($this->checkdata($url,$prefix,$style)){
  8. case 1:
  9. echo '<script>alert("コレクションアドレスを空にすることはできません!")</script>';
  10. exit;
  11. Break;
  12. case 2:
  13. echo '<script>alert("収集される画像形式は配列である必要があります!")</script>';
  14. exit;
  15. Break;
  16. case 3:
  17. echo '<script>alert("収集する必要がある画像形式を空にすることはできません!")</script>';
  18. exit;
  19. Break;
  20. case 4:
  21. echo '<script>alert( "ファイル名に . / | を含めたり、スペースで始めることはできません! ")</script>';
  22. exit;
  23. }
  24. $this->url = $url;
  25. $this->prefix = $ prefix;
  26. $this-> ;style = $style;
  27. }
  28. //データ収集開始
  29. public function action(){
  30. $url = $this->checkurl();
  31. $imgurl = $this-> collecturl($url);
  32. $this->savafile($imgurl);
  33. }
  34. //URL処理
  35. 保護関数checkurl(){
  36. $munprel = '/([0-9]+,[0-9 ]+)/i';
  37. $myurl;
  38. if(preg_match($munprel,$this->url,$arr)){
  39. $temp = substr($arr[0],1,strlen($arr[ 0])-2);
  40. $mymunber =explode(',',$temp);
  41. $temparr =explode($arr[0],$this->url);
  42. for($i=$mymunber[ 0];$i $myurl[] = $temparr[0].$i.$temparr[1];
  43. }
  44. }else{
  45. $myurl = $this ->url;
  46. }
  47. return $myurl;
  48. }
  49. //ファイル保存
  50. 保護関数 savafile($imgurl){
  51. if(!empty($imgurl)){
  52. foreach($imgurl[0] as $key =>$value){
  53. $filename = '';
  54. if(in_array($imgurl[1][$key],$this->style)){
  55. $size = @getimagesize($value);
  56. if($size === false){
  57. continue;
  58. }
  59. list($w,$h,$t,$a) = $size;
  60. if($w continue;
  61. }
  62. ob_start( );
  63. readfile($value);
  64. $obj = ob_get_contents();
  65. ob_end_clean();
  66. $dir = 'F:/php/';
  67. if(!is_dir($dir) ){
  68. mkdir($dir ,0777);
  69. }
  70. if(!empty($this->prefix)){
  71. $filename = $dir.$this->prefix.date('Ymd').rand (10000,99999).' .'.$imgurl[1][$key];
  72. }else{
  73. $filename = $dir.date('Ymd').rand(10000,99999).'.'.$ imgurl[1][$key ];
  74. }
  75. $fo = @fopen($filename,'wb');
  76. if($fo === false){
  77. echo '<script>alert("作成に失敗しましたファイル、ファイル ディレクトリは書き込み可能ではありません。 ")</script>';
  78. exit;
  79. }
  80. $fw = fwrite($fo,$obj);
  81. echo '
    '。 $filename.'コレクション成功
    ';
  82. }
  83. }
  84. }
  85. }
  86. //画像サフィックス名を含むアドレス収集関数
  87. protected functioncollecturl($url){
  88. set_time_limit(0);
  89. if ( is_array($url)){
  90. $arr = array();
  91. $imgkey = array();
  92. foreach($url as $value){
  93. $code = file_get_contents($value);
  94. preg_match_all(self:: prel ,$code,$arrimg);
  95. $arr = array_merge($arr,$arrimg[0]);
  96. $imgkey = array_merge($imgkey,$arrimg[1]);
  97. }
  98. return array($arr, $ imgkey);
  99. }else{
  100. $code = file_get_contents($url);
  101. preg_match_all(self::prel,$code,$arrimg);
  102. return $arrimg;
  103. }
  104. }
  105. //チェックデータ
  106. プライベート関数checkdata ($url,$prefix,$style){
  107. if(empty($url)){
  108. return 1;
  109. }elseif(!is_array($style)){
  110. return 2;
  111. }elseif(count($style ) ==0){
  112. return 3;
  113. }elseif(stripos($prefix,'.') !== false || Stripeos($prefix,'/') !== false || Stripeos($prefix,' | ') !== false){
  114. return 4;
  115. }
  116. }
  117. }
コードをコピー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。