■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

最初の画像のURLのみを抽出する方法

sgrnsn > 最初の画像のURLのみを抽出する方法 @ 2011/8/10 12:17
お世話になります。

表題の通り、「最初の画像のURLのみを抽出する方法」をご教授願います。

現状、
<?php $blog->postImg($post) ?>


<a href="***"><img src="***" alt="***" /></a>

が抽出できますが、
これを画像のURLだけを抽出したいのです。
使用用途としましては、facebookのサムネイル画像で使用する画像タグ
<meta property="og:image" content="IMAGE_URL"/>

をヘッダーへ挿入したい為です。

app\plugins\blog\views\helpers


を少しカスタマイズしてみましたがどうもうまくいきません。
大変お手数ではございますがご教授願います。

宜しくお願い致します。
goichi > Re: 最初の画像のURLのみを抽出する方法 @ 2011/8/11 22:47
こんにちは(^^
通りすがったので、思いついた事を返信してみます。
(お役にたてなかったらゴメンなさい!)

私の案では、
まず、$blog->postImg()ではなく、$blog->getPostImg()使うことにしました。
(取得されるタグがechoされるかされないかの違いです。)
それから、正規表現を使って、SRCの値を引っこ抜きます。


<?php

//画像のリンクを取得する。
$imgLink = $blog->getPostImg($post);

//この記事に画像が使われていれば処理に入る。
if(!empty($imgLink)){

   //IMGタグのSRCから画像URLを取り出すための正規表現を作成
   $searchPattern = '/<img.*?src=(["\'])(.+?)\1.*?>/i';

   //正規表現で上記のパターンにマッチするものを探す。
   //もし条件にマッチした場合は、変数にMETAタグを代入しておく。
   if(preg_match($searchPattern, $imgLink, $imgurl)){
	   $fbMeta = '<meta property="og:image" content="'.$imgurl[2].'" />';
   }
}

//メタタグを任意の個所で出力する。
if(!empty($fbMeta)){
    echo $fbMeta;
}

?>


参考URLを載せておきますね。
http://eniac.heteml.jp/test/wordpress/other/298.html

正規表現の部分は上記アドレスのサイトからまるごとコピー(汗)ですので、
sgrnsnさんの意図する動きかどうか分かりませんが、
この正規表現の条件部分を上手にいじれば、目的を達成できるのではないかと思います!

以上です(^^
sgrnsn > Re: 最初の画像のURLのみを抽出する方法 @ 2011/12/7 20:20
返信が遅くなり申し訳ございません。
ご回答ありがとうございました。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
20 人のユーザが現在オンラインです。 (18 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 20