ホームページ  >  記事  >  バックエンド開発  >  CSS_PHP チュートリアルのすべての画像ファイルの PHP コードを取得してダウンロードする

CSS_PHP チュートリアルのすべての画像ファイルの PHP コードを取得してダウンロードする

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

この記事のハイライトは、正規表現がより複雑であることです (╮(-_-)╭)。これは Copy 関数の非常に強力な使い方です。
> ところで、NsYta が Xiao Xie のテーマは白すぎると言っているのを聞きましたが、それはばかげています。最近忙しくて時間がないので、新しいテーマを自分で作成します。

1. CSS で画像をキャプチャします:
> 1. まず準備をします:
> 最初のステップは、CSS の元のパスを $url 変数に保存し、CSS の内容を abc に保存することです。 .css。
> 複数の CSS ファイルが頻繁に発生することを考慮して、Xiaoxie は CSS パスを直接入力しませんでした。
> 代わりに、複数の CSS ファイルの内容を結合し、すべてを abc.css ファイルに詰め込みます。

$data = file_get_contents('abc.css');

> 次に、CSS ファイルの内容を $data 変数に読み取り、正規表現を使用してドメイン名を抽出します。
> 多くの画像ファイルは /img/1.gif や img/1.gif などの相対ルート パスを使用すると考えられるためです。
> CSS の元のアドレスは http://www.jb51.net/css/ なので、上記 2 つのファイルの場所は異なります。

> 最初のファイルは /upload/201109/20110926143903807.gif にあります。これは、そのパスが相対ルート パスを使用しているためです。
> 2 番目のパスは /upload/201109/20110926143903169.gif にあり、そのパスは通常の相対パスです。

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

$url = 'http://www.jb51.net/css/'; preg_match('/(.*//.*?)/ /',$ url,$host);
//正規表現を使用して http://www.jb51.net/ を抽出します。バックエンドにスラッシュを追加することを忘れないでください。
//.*? は遅延マッチングです。つまり、一致できるコンテンツが少ないほど、やりすぎないようにします。
$host = $host[1]

;

CSS_PHP チュートリアルのすべての画像ファイルの PHP コードを取得してダウンロードする
2. 画像保存フォルダーを作成します。
> Xiaoxie は、フォルダーが存在するかどうかを確認するために is_dir を使用しました。存在する場合は、再度作成する必要はありません。
>はは、ちなみに、is_file関数は、このファイルが通常のファイルであるかどうか、存在するかどうかを判断できます。
> しかし、Webmasterworld.com で誰かが議論しているのを見たことがあるので、file_exists() の方が優れています。

if (!is_dir('img')) { mkdir('img'); }

> 3. 正規表現を使用して画像の相対アドレスを取得します:

$regex = '/url('{ 0, 1}"{0,1}(.*?)'{0,1}"{0,1})/';
//ここでは、画像アドレスと一致するために正規表現を使用します。つまり、url( 1.gif) url('1.gif') url("1.gif") が考えられます。
//この3つの書き方はどれも使えるので、上記の規則に従って中の1.gifを取り出していきます。
//'{0,1} は一重引用符が 1 回または 0 回出現することを意味します。 " は二重引用符が 1 回または 0 回出現することを意味します。
//遅延マッチングは中間で使用する必要があります。それ以外の場合、結果は 1 になります。 .gif " 1.gif 鳥の代わりにO(∩_∩)P。
preg_match_all($regex,$data,$result);

> 4. これらの画像を処理します:

> まず、正規表現を使用して抽出された最初のブランチ コンテンツ配列を処理します。
> ここでの最初の分岐は、正規表現の最初の括弧を表します (笑)。

foreach ($result[1] as $val) { }

> 次に、この /upload/201109/20110926143903807.gif も考慮する必要があるため、正規表現を使用して決定します。
> これは、他のもののように /img/1.gif や img/1.gif の代わりに完全なパスを使用します。
> したがって、それを個別に判断してから、これら 2 つを判断して、それが /img/1.gif であるか img/1.gif であるかを確認します。

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

if (preg_match('/^http.*/',$val)) { $target = $val; }
else if (preg_match('/ ^/. */',$val)) { $target=$host.$val; }
else { $target=$url.$val;
echo $target."
rn";

> 最後に、/img/1.gif 内のファイル名 1.gif を取り出してファイルを保存します。
コードをコピーします コードは次のとおりです:

preg_match('/.*/(.*.D+)$/',$val,$name);ダウンロードを開始したら、ここでは強力なコピー機能の使い方を紹介します。


コードをコピーします
コードは次のとおりです: if (!is_file('./img/'.$name[1])) {
$imgc = file_get_contents($target);ハンドル = fopen( './img/'.$name[1],'w+');
fwrite($handle,$imgc)
}


> 上記の方法は古い方法です、非常に面倒です。あるとき、シャオシェは突然コピーの力を発見しました。
> コピーは実際にダウンロードできるので、次のコードを使用して簡単に処理でき、上記のものは廃止できます。
コードをコピーします コードは次のとおりです:

if (!is_file('./img/'.$name[1])) {
copy($target,'./img/'. $name[ 1]);
}

> 5. ソース コードを完成させます:

> 使用する場合は、$url を入力して、すべての CSS コンテンツを abc.css に保存します。
コードをコピーします コードは次のとおりです:

$url = 'http://www.jb51.net/css/'
$data = file_get_contents('abc. css');
preg_match('/(.*//.*?)//',$url,$host);
$host = $host[1]; { mkdir(' img') }
$regex = '/url('{0,1}"{0,1}(.*?)'{0,1}"{0,1})/';
preg_match_all($ regex,$data,$result);
foreach ($result[1] as $val) {
if (preg_match('/^http.*/',$val)) { $target = $val ; }
else if (preg_match('/^/.*/',$val)) { $target=$host.$val; }
else { $target=$url.$val; } "
rn";
preg_match('/.*/(.*.D+)$/',$val,$name); [1]) ) {
copy($target,'./img/'.$name[1])
}
}?>



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

tru​​e

技術記事この記事のハイライトは、正規表現がより複雑であることです (╮(-_-)╭)。そして、コピー関数の非常に強力な使用方法があります。 ちなみにNsYtaさんがXiao Xieのテーマは白すぎてもったいないと言っていたのを聞きました。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。