検索
ホームページバックエンド開発PHPチュートリアルCSS 内のすべての画像ファイルの PHP コードを取得してダウンロードします。

この記事のハイライトは、正規表現がより複雑であること、?(-_-)?、そして 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.bitsCN.com/css/ なので、上記 2 つのファイルの場所は異なります。

> 最初のファイルは /upload/201109/20110926143903807.gif にあります。これは、そのパスが相対ルート パスを使用しているためです。
> 2 番目のパスは /upload/201109/20110926143903169.gif にあり、そのパスは通常の相対パスです。
コードをコピーします コードは次のとおりです:
$url = 'http://www.bitsCN.com/css/' preg_match('/(.*//.*?)//',$url,$ host);
//ここで正規表現を使用して http://www.bitsCN.com/ を抽出します。バックエンドにスラッシュを追加することを忘れないでください。
//.*? は遅延マッチングです。つまり、一致できるコンテンツが少ないほど、やりすぎないようになります。
$host = $host[1];

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);
$handle = 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.bitsCN.com/css/';
$data = file_get_contents('abc.css'); '/(. *//.*?)//',$url,$host);
$host = $host[1]
if (!is_dir('img')) { mkdir('img'); ; }
$ regex = '/url('{0,1}"{0,1}(.*?)'{0,1}"{0,1})/'; 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 }
echo $target; rn";
preg_match('/.*/(.*.D+)$/',$val,$name);
if (!is_file('./img/'.$name[1])) {
copy($target ,'./img/'.$name[1]);

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
利用CSS怎么创建渐变色边框?5种方法分享利用CSS怎么创建渐变色边框?5种方法分享Oct 13, 2021 am 10:19 AM

利用CSS怎么创建渐变色边框?下面本篇文章给大家分享CSS实现渐变色边框的5种方法,希望对大家有所帮助!

css ul标签怎么去掉圆点css ul标签怎么去掉圆点Apr 25, 2022 pm 05:55 PM

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

css3怎么实现鼠标隐藏效果css3怎么实现鼠标隐藏效果Apr 27, 2022 pm 05:20 PM

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

css怎么实现英文小写转为大写css怎么实现英文小写转为大写Apr 25, 2022 pm 06:35 PM

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

怎么设置rotate在css3的旋转中心点怎么设置rotate在css3的旋转中心点Apr 24, 2022 am 10:50 AM

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。

See all articles

ホット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版ダウンロード

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。