ホームページ > バックエンド開発 > PHPチュートリアル > ページ上のすべての画像アドレスを取得するための PHP の通常の方法_PHP チュートリアル

ページ上のすべての画像アドレスを取得するための PHP の通常の方法_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:50:04
オリジナル
837 人が閲覧しました

// ページ上のすべての画像アドレスを取得します
関数 getimages($str)
{
$match_str = "/((http://)+([^ rn()^$!`"'|[]{}<>]*)((.gif)|(.jpg)|(. bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/";
Preg_match_all ($match_str,$str,$out,PREG_PATTERN_ORDER);
$out を返します;
}
?>
/"'s]*)/i
, 記事の保存にはkindeditorを使用していますが、記事のロゴ画像としてN番目の画像のアドレスを取り出す必要があり、記事コード(コンテンツのhtml)がデータベース内のフィールドに保存されます。画像アドレスは別のフィールドに保存されます。上記の正規表現を使用するだけです。

説明しますと、上記のアドレスは img タグ内の src 属性の値を直接取得するためのもので、この通常のパターンを使用して php ページ上のパスにアクセスできる場合は、それを直接使用できます。 preg_match_all を使用して、最初にすべてのアドレスを配列に保存し、次にファイル名 (パス部分なし) を取得し、URL を再構成してから、画像を削除するなどのパスを処理します。

私の例:

preg_match_all("/ページ上のすべての画像アドレスを取得するための PHP の通常の方法_PHP チュートリアル
はは、コンテンツの一部が PHP によってエスケープされているため、まずそれを削除し、str_ireplace("","",$content) してから、一致するコンテンツを $arr 配列 (2 次元) に保存する必要があります。 $arr[1] はパスを格納する配列です。



$ext = 'gif|jpg|jpeg|bmp|png';//http://www.bKjia.c0m グリーン ソフトウェア

による複数拡張子の一致を実現するための画像サフィックスのリスト $str = '

グリーン ソフトウェア

グリーン ソフトウェア

';
preg_match_all("/(href|src)=(["|']?)([^ "'>]+.($ext))2/i", $str, $matches);
var_dump($matches);
?>



結果

配列(5) {

[0]=>

配列(3) {
[0]=>
文字列(57) "src="http://www.bKjia.c0m /data/soft_img/2010091101619.jpg""
[1]=>
文字列(57) "src="http://www.hzhuti.com/sonyericsson/w715/ 2010091029938.jpg""
[2]=>
String(57) "src="http://www.bKjia.c0m /data/soft_img/2010092839019.jpg""
}
[1]=>
配列(3) {
[0]=>
文字列(3) "src"
[1]=>
文字列(3) "src"
[2]=>
文字列(3) "src"
}
[2]=>
配列(3) {
[0]=>
文字列(1) """
[1]=>
文字列(1) """
[2]=>
文字列(1) """
}
[3]=>
配列(3) {
[0]=>
文字列(51) "http://www.bKjia.c0m /data/soft_img/2010091101619.jpg"
[1]=>
文字列(51) "http://www.bKjia.c0m /data/soft_img/2010091029938.jpg"
[2]=>
文字列(51) "http://www.bKjia.c0m /data/soft_img/2010092839019.jpg"
}
[4]=>
配列(3) {
[0]=>
文字列(3) "jpg"
[1]=>
文字列(3) "jpg"
[2]=>
文字列(3) "jpg"
}
}



PHPによる画像の定期的なマッチングと画像へのリンクの追加について詳しく解説

$newstext=preg_replace(preg_replace('/(]+srcs*=s*”?([^>"s]+)”?[^>]*>)/im ', '$1', $newstext);


1.preg_replace と str_replace の違い:

str_replace は単なる文字の置換ですが、preg_replace は通常の置換です

2.$0、$1、$2などの説明:

$0 はパターン全体と一致するテキストを指します。

$1 は、最初の ( );

によって参照される文字列を指します。

$2 は 2 番目の () によって参照される文字列を指します

;

PHP開発からの抜粋


http://www.bkjia.com/PHPjc/478301.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478301.html技術記事 ?php //ページ上のすべての画像アドレスを取得 function getimages($str) { $match_str = /((http://)+([^ rn()^$!`|[]{}]*)(( .gif)|(.jpg)|(.bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/;
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート