検索
ホームページphp教程php手册PHP 記事内のリモート画像がローカル コードに収集される

PHP 記事内のリモート画像がローカル コードに収集される

Jun 13, 2016 pm 12:22 PM
imgphpコード写真バンドル記事地元通常使用リモートでコレクション

最初のステップでは、正規表現を使用して記事からすべての

コードをコピーします。コードは次のとおりです。 :

$message //記事の内容

//通常(まだです)
$reg = "/PHP 記事内のリモート画像がローカル コードに収集される]*src="(http ://(. ) /(. ).(jpg|gif|bmp|bnp))"/isU";
//抽出した画像アドレスを $img_array 変数に格納
preg_match_all($reg, $ message, $img_array , PREG_PATTERN_ORDER);
//重複する画像をフィルターします
$img_array = array_unique($img_array[1]);


ステップ 2. $img_array 配列をループします。画像 記事の場所を保存して置き換えます



コードをコピー コードは次のとおりです:

foreach ($img_array as $img){

/ /画像が自分のウェブサイト上にあるかどうかを判断します
if('xxx.com' != get_domain($img)){// 画像が自分のサーバー上にない場合
//読み取り画像ファイル
$Gimg = new GetImage();
$Gimg->source = $img;
$Gimg->save_to = './data/temp/'; FILE = $Gimg-> ;down​​load(); //写真をローカルの場所に移動します
//写真の保存場所を取得するにはアルバムに保存します
$img_path = pic_save($FILE,0, '');
//テキストパス置換
$message = str_replace($img, $img_path, $message);
}
}


...この時点で、$message 内の画像は自分のサーバーのローカル アドレスに置き換えられ、画像も自分のサーバーに保存されます。



コードをコピーします

コードは次のとおりです:


//次の関数とクラスはインターネット上にあります。
//URL からドメイン名を取得します。
function get_domain($url){
$pattern = "/[ w -] .(com|net|org|gov|cc|biz|info|cn)(.(cn|hk))*/";
preg_match($pattern, $url, $matches);
if(count($matches) > 0) {
return $matches[0];
}else{
$rs = parse_url($url); " ホスト"];
if(!strcmp(long2ip(sprintf("%u",ip2long($main_url))),$main_url)) {
return $main_url>}else{
$arr =explode(".",$main_url);
$count=count($arr);
$endArr = array("com","net","org","3322") ; //com.cn net.cn など
if (in_array($arr[$count-2],$endArr)){
$domain = $arr[$count-3]." . $arr[$count-2].".".$arr[$count-1];
}else{
$domain = $arr[$count-2].".$arr [ $count-1];
}
return $domain; // end if(!strcmp...)
}// end if(count...)
} // 関数の終了
// リモート バーからローカル サーバーに画像をロードするクラス
class GetImage {
var $source;
var $quality;
function download($method = 'curl') {
$info = @GetImageSize($this->source);
$mime = $info['mime'];どのような画像ですか?
$type = substr($mime, '/'), 1);
switch ($type){
case 'jpeg':
$image_create_func = ' ImageCreateFromJPEG';
$image_save_func = 'ImageJPEG';
$new_image_ext = 'jpg';
// 最高品質: 100
$quality = isSet($this->quality) ? ->品質: 100;
break;
ケース 'png':
$image_create_func = 'ImagePNG';
/ / 圧縮レベル: 0 (圧縮なし) から 9
$quality = isSet($this->quality) $this->quality : 0;
break
case; 'bmp':
$image_create_func = 'ImageCreateFromBMP';
$new_image_ext = 'bmp';
case ':
$image_create_func = ' ImageCreateFromGIF';
$image_save_func = 'gif';
case 'vnd.wap.wbmp':
$image_create_func = 'ImageCreateFromWBMP';
$image_save_func = 'ImageWBMP';
case 'xbm':
$image_createFromXBM'; $image_save_func = 'ImageXBM';
$new_image_ext = 'xbm';
デフォルト:
$image_create_func = 'ImageJPEG'; $new_image_ext = ' jpg';
}
if(isSet($this->set_extension)){
$ext = strrchr($this->source, "."); $strlen = strlen ($ext);
$new_name = Basename(substr($this->source, 0, -$strlen)).'.'.$new_image_ext;
$new_name = ベース名 ($this->source);
}
$save_to = $this->save_to."/blog_insert_temp_".time().mt_rand(1,99)."."。 $new_image_ext;
//出力オブジェクトの構成は $_FILE 変数と同じです。取得後は通常の画像アップロード処理と同じです。 this->source);
$img_info['type'] = $mime;
$img_info['tmp_name'] = $save_to; >$img_info['error'] = 0;
if($method == 'curl'){
$save_image = $this->LoadImageCURL($save_to); == 'gd'){
$img = $image_create_func($this->source);
if(isSet($quality)){
$save_image = $image_save_func($img, $save_to) , $quality);
}else{
$save_image = $image_save_func($img, $save_to);
}
}
return $img_info; LoadImageCURL($save_to){
$ch =curl_init( $this->source);
$fp = fopen($save_to, "wb"); // URL およびその他の適切なオプションを設定します。 🎜>$options = array(CURLOPT_FILE => $fp,
CURLOPT_HEADER => 0,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_TIMEOUT => 60); // 1 分のタイムアウト (十分なはずです)
curl_setopt_array($ch, $options);
curl_exec($ch);
fclose($fp); 🎜>

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境