ホームページ >バックエンド開発 >PHPチュートリアル >PHP 記事での画像処理の使用_PHP チュートリアル

PHP 記事での画像処理の使用_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-22 09:02:33915ブラウズ

array_diff($arr1,$arr2)

PHP 配列関数の 1 つで、配列の差分セットを計算するために使用されます。
定期的に HTML 画像タグと一致します
sinaeditorで画像削除操作を追加
用途の 1 つは、今夜 Sina エディターを使用して記事を公開する途中です。
この機能が使われています

問題の説明:

記事にはいくつかの写真が含まれています。それらは記事を追加するプロセス中にウェブサイトの画像ディレクトリに自動的にアップロードされます。 記事を修正する過程で、画像に対して関連する削除操作を実行すると、それはコード内にありますが(すでにデータベースに保存されています)、
データタグは削除されました。 に似たタグが
に残っています。 ウェブサイトでは、これには特定の処理が必要です

対処方法:

まず: データベースから元の記事コンテンツを取得します
そこから画像のファイル名を取得します
通常のルールが使用されます

方法は以下の通りです
コードは以下のように表示されます。

パブリック関数 getimgsinarticle($content)
{
$temp = array();
$imgs = array();
preg_match_all('/http[^d]*[d]+[.](jpg|gif|png)/',$content,$temp);
$temp = $temp[0];
if(!empty($temp[0]))
{
for($i=0;$i {
$imgs[$i] = パス情報($temp[$i]);
$imgs[$i] = $imgs[$i]['ベース名'];
}
$imgs を返します;
}
それ以外
{
false を返します;
}
}

通常のルールを説明します。まず http の 4 つの文字に一致し、次に
までの数字以外の文字に一致します。 1 つ減り、一致するドット (.) が jpg または gif または png で終わり、$congtent から検索され、結果は $temp.
に保存されます。 データベース内の元データの写真を $oldimgs
という名前で保存します。 ここは改善すべきだと思います。保存後に二次元配列が出力されるのですが、少し使いにくいです。 注: 私の画像の名前は次のようになります: "201111291322589013.jpg"

ステップ 2:

ユーザーが送信したコンテンツからすべての画像を検索する方法は上記の通りで、2 番目の配列が取得され、$newimgs

という名前が付けられます。 arr1とarr2の差分セットを求める方法は以下の通りです
--つまり、ユーザーが新規投稿したコンテンツに元データ内の写真が存在しない場合、その写真は削除されます
コードは以下のように表示されます:
$oldimgs = $this->getimgsinarticle($oldarticledata['article_content']);

$newimgs = $this->getimgsinarticle($data['articlecontent']);
//print_r($newimgs);
$newimgs = empty($newimgs)?array():$newimgs;
if($oldimgs!=false)
{
$diff = array_diff($oldimgs,$newimgs);
$diff = array_values($diff);
if(!empty($diff))
{
for($i=0;$i {
$this->delimg($diff[$i],ARTICLE_IMG_DIR);
}
}
}

写真の削除方法はとても簡単です

コードは以下のように表示されます:
パブリック関数 delimg($imgname,$dir)

{
@unlink($dir.'/'.$imgname);
true を返します;
}

このようにして、ユーザーが写真付きの記事を編集した場合、その写真が削除されると、対応する写真もウェブサイトから削除されます

。 記事内の画像の名前を取得する方法は、記事の削除処理にも応用できます

画像を削除する方法では、realpath(__FILE__) を使用し、$dir にさまざまな「./」「../」を追加して、Web サイトのディレクトリを基準とした相対的な画像ディレクトリを指定できます
ここでの通常のルールは HTML でパスを取得するのにあまり適していません。最近、非常に良い本を見つけました。

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

www.bkjia.com

http://www.bkjia.com/PHPjc/371921.html技術記事 array_diff($arr1,$arr2) は php の配列関数の 1 つで、配列の差分セットを計算するために使用されます。これは、sinaeditor によって追加された画像削除操作の 1 つです。今夜は Sina を使用します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。