PHPの正規表現でimgタグ内のsrcの値(URL)を取得する方法

php-preg_match_all
  • URLをコピーしました!

皆さん、こんにちは!
突然ですが、正規表現っていつも悩ませてくれちゃいますね。
今回はHTMLimgタグからPHP正規表現を使ってsrcの値、つまりURL(パス)を取得しようって話です。
なぜ悩むかと言うと、様々な書き方があり、場合によっては上手く取得できないこともあるからです。

目次

preg_match_all()で正規表現検索

関数の使い方

ネットで探す前に、まずはマニュアルを読みましょう。

あわせて読みたい
PHP: preg_match_all - Manual PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
  • 第1引数に正規表現の検索パターンを。
  • 第2引数検索文字列
  • 第3引数検索結果配列で返ってくるようです。

まとめると、

オプションはよくわからないので今回は飛ばします。

一部取得に失敗した例

WordPressを使っている人なら、かなりの確率でご存知かもしれませんが、「Newpost Catch」というプラグインの中に今回のヒントが隠されていました。
Newpost Catchアイキャッチ画像が存在しなくても、コンテンツに含まれる画像自動的に探して一覧のサムネイルとして表示してくれます。

WordPress.org 日本語
Newpost Catch Thumbnails in new articles setting widget.

この中で、preg_match_all()関数が使用されているところを抜粋しました。

wp-content/plugins/newpost-catch/class.php

注目すべきはココです。

試してみると、imgタグの書き方によっては、srcの値を取得できない場合がありました。

この正規表現パターン部分を変更します。

成功した正規表現のパターン例

こちらが、著者が実際に使って効果を実感しているものです。

今のところ取得できないimgタグはありません。

まとめ

下記で取得し、$matchesをゴニョゴニョすればOK!

他にも書き方があると思いますので、知っている方はコメントください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次