ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの正規表現を使用してコンテンツ内のリモート画像をダウンロードするための関数コード

PHP_PHP チュートリアルの正規表現を使用してコンテンツ内のリモート画像をダウンロードするための関数コード

WBOY
WBOYオリジナル
2016-07-21 15:22:09899ブラウズ

実はこのプログラム、「泥棒プログラム」の重要な部分を担っています。 プログラムのこのセクションは、リモート イメージをダウンロードするためのセクションにすぎません。プログラムの作成は比較的簡単で、ほとんどの部分がコメントになっています。

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

if (preg_match_all("/http://[^ "']+[.jpg|.gif|.jpeg|.png]+/ui" ,stripcslashes( $content),$aliurl)){
$i=0; //複数のファイル++
while(list($key ,$v) = each($aliurl[0])){
//echo $v ."
";
$filetype = pathinfo($v, PATHINFO_EXTENSION) //サフィックス名を取得
$ff = @file_get_contents($v); //バイナリファイルの内容を取得します
if(! tripos($v,"jb51.net")){//自分の Web サイトの画像かどうかを判断します
if (!empty($ff)){ //ファイルを取得した後、次の操作を実行します
$dir = "upload /".date("Ymd")."/";//新しい保存先のパスを指定
if (!file_exists($dir)){//ディレクトリが存在するかどうかを判定
@mkdir($dir,511, true); //複数レベルのディレクトリを作成します。511 を 10 進数に変換すると 777 になり、実行可能権限が与えられます
}
$nfn = $dir.date("Ymdhis").$i.".".$filetype;ビルドファイルの名前
$nf = @fopen($nfn,"w"); //ファイルを作成します
fwrite($nf,$ff); //ファイルを書き込みます
fclose($nf); $i++; / /複数のファイル++
echo "$content = str_replace($v,$nfn, $content);//コンテンツ内のパラメータを置換します
} else{//画像が取得できない場合は、デフォルトの画像に置き換えます
$content = str_replace($v,"/upload/201204/20120417213810742.gif", $content);//content のパラメータを置き換えます
}
}
}
}


PHP は、正規表現を使用してローカル実装コードに画像をダウンロードします


コードをコピーします コードは次のとおりです:
/*
author: ssh_kobe
date: 20110602
不足: if Web ページ内の画像パスが絶対パスでない場合、クロールできません
*/
set_time_limit(0);// クロールは時間に制限されません

$URL='http ://pp.baidu.com/';// 任意の URL

get_pic($URL);

function get_pic($pic_url) {
//画像バイナリ ストリームを取得します
$data=CurlGet($pic_url);
/*正規表現を使用して画像リンクを取得します*/
$ pattern_src = '/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg] ))['|"].*?[/]?> ;/';
$num = preg_match_all($pattern_src, $data, $match_src);
$arr_src=$match_src[1];// 画像を取得array
get_name($arr_src);

echo "
completed!!!";
return 0;

/*画像の種類を取得し、ファイルと同じディレクトリに保存します*/
function get_name($pic_arr)
{
//画像タイプ
$pattern_type = '/(/.(jpg|bmp|jpeg|gif|png))/'

foreach($pic_arr as $pic_item){//ループ各画像のアドレスを取得します
$num = preg_match_all($pattern_type, $ pic_item, $match_type);
$pic_name = get_unique().$match_type[1][0];// マイクロ秒のタイムスタンプの名前を変更します
//画像をストリーム形式で保存します
$write_fd = @fopen($pic_name ,"wb");
@fclose($write_fd); OK]..!";
}
return 0;
}

/ /マイクロ秒時間で一意のIDを取得
function get_unique(){
list($msec, $sec) =explode(" ",microtime()) ;
return $sec.intval($msec*1000000)
}

//Web ページのコンテンツを取得する
function CurlGet($url){
$url=str_replace('&','&',$url);
$curl =curl_init();
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_REFERER, $url); $ curl, CURLOPT_USERAGENT, "Mozilla/4.0 (互換性; MSIE 6.0; SeaPort/1.2; Windows NT 5.1; SV1; InfoPath.2)");
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt');カール、CURLOPT_COOKIEFILE、'cookie.txt');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
$values($curl); $カール);
$ 値を返す
?>



http://www.bkjia.com/PHPjc/324775.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/324775.html

技術記事
実はこのプログラム、「泥棒プログラム」の重要な部分を担っています。 プログラムのこのセクションは、リモート イメージをダウンロードするためのセクションにすぎず、プログラムの作成は比較的簡単で、ほとんどの部分に注釈が付けられています。 ...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP はページ レコードを削除し、同時にページを更新します。削除条件は GET_PHP チュートリアルを使用して取得されます。次の記事:PHP はページ レコードを削除し、同時にページを更新します。削除条件は GET_PHP チュートリアルを使用して取得されます。

関連記事

続きを見る