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要素の先頭に出現するパターンのみ有効です。