最初のステップでは、正規表現を使用して記事からすべての
コードをコピーします。コードは次のとおりです。 :
$message //記事の内容//通常(まだです)
$reg = "/]*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-> ;download(); //写真をローカルの場所に移動します
//写真の保存場所を取得するにはアルバムに保存します
$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); 🎜>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック



