トップページへ

MTの本文フィールドからimg要素のURLを取得する方法

小粋空間 » Movable Type » テンプレートタグ » MTの本文フィールドからimg要素のURLを取得する方法

MTの本文フィールドからimg要素のURL(src属性値)を取得する方法を紹介します。

1.はじめに

Movable Typeの本文フィールドに埋め込んだ、最初に出現するimg要素からURLを取得する必要が生じました。

このURLはアイテムとしては登録していないので、Asset系のタグを使って取得することはできません。

ということで、img要素のURLを取得する方法を紹介します。

2.最初に出現するimg要素のURLを取得する

本文フィールドに埋め込まれた最初に出現するimg要素のURLを取得するには、次のような方法があります。

<mt:Entries>
  <$mt:EntryBody regex_replace='/[\s\S]*?<img src="([^"]+)"[\s\S]*/',"$1" setvar="url"$>
  <$mt:GetVar name="url"$>
</mt:Entries>

3.解説

MTEntryBodyタグにregex_replaceモディファイアを用いて、本文の中から最初に出現するsrc属性値を取得しています。

regex_replaceモディファイアでダブルクォーテーションを使うとパターンマッチのダブルクォーテーションをエスケープしなければならなくなるので、ここではシングルクォーテーションを使っています。

src属性値の部分は「[^"](=ダブルクォーテーション以外の1文字以上の文字にマッチ)」で取得しています。またimg要素以外の部分は「[\s\S]*」で改行を含むすべての文字を指定しています。

最初のimg要素にマッチさせるために最短マッチの「?」を使っています。

最短マッチについては「正規表現の最短マッチと最長マッチについて」をご覧ください。

最後にsetvarタグを使って、抽出したURLを変数urlに保存しています。

4.注意事項

このパターンマッチはsrc属性がimg要素の先頭に出現するパターンのみ有効です。

« 前の記事へ

次の記事へ »

トップページへ