
正規表現を使いimgタグ内から幅と高さサイズを抜き出し
phpにて正規表現を使い html の imgタグ内の width = "xxx" height = "xxx" を各々抜き出しその数字も個別に抜き出したいと思っております。
正規表現で行き詰っており、お知恵を拝借できればと思っております。
説明がわかりづらいかと思いますが、よろしくお願いしたいと思います。
下記のような文字列より
<img src="http://test.co.jp/img/test01.jpg" alt="テスト画像です。" title="テスト画像です。" width="361" height="640" class="size-full wp-image-100" />
width="361"
height="640"
を個別に取りだし
さらにその中の数字"361"を取り出したいと思っております。
正規表現に不慣れなので、お知恵をお借りいただけないでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
<?php
$str='<img src="http://test.co.jp/img/test01.jpg" alt="テスト画像です。" title="テスト画像です。" width="361" height="640" class="size-full wp-image-100" />';
$pattern="/(width=\"([0-9]*)\").*(height=\"([0-9]*)\") /";
if(preg_match_all($pattern,$str,$match)) {
var_dump($match);
}
?>
イメージタグ内の属性の並び順や書式がきっちり決まってるなら上記のような感じで
$match[0]にはマッチした全体が
$match[1]にはwidth="361"が
$match[2]には361が
$match[3]にはheight="640"が
$match[4]には640が設定されます。
そうでない場合、属性の名前と値をmatchingで取り出して
目的の属性を探すといいと思います。
<?php
$str='<img src="http://test.co.jp/img/test01.jpg" alt="テスト画像です。" title="テスト画像です。" width="361" height="640" class="size-full wp-image-100" />';
$pattern="/([^\s]*)=[\"\'](.*?)[\"\']/";
if(preg_match_all($pattern,$str,$match)) {
var_dump($match);
if($key=array_search("width",$match[1])) {
print($match[2][$key]);
}
}
?>
上のような正規表現(XXX="YYY"とXXX='YYY'はとれますがXXX=YYYはとれません)ですと
$match[0]には属性全体(XXX="YYY")が
$match[1]には属性の名前XXXが
$match[2]には属性の値YYYが設定されます。
$match[1]からarray_searchで目的の属性をせばOKです。
duron様、
早々のご回答ありがとうございました。
完璧にできました。
matchingで取り出す方法までご教授いただき、勉強になりました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- PHP PHP echo バックスラッシュの使い方 img要素 2 2023/01/08 22:46
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- HTML・CSS ブロックエディターで作りつつ、画像を挿入しつつ、画像にスタイルシートのコードを付ける方法はありますか 1 2022/08/23 18:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現
-
PHPで<a>タグ内からURLと文字を...
-
正規表現で記号 & アンドの検索...
-
「半角数字」と「+」を許可する...
-
eval
-
正規表現パターンの記入方法に...
-
URLを抽出する正規表現
-
PHPで似たコードを繰り返す場合...
-
文字列中の任意の数字を換算
-
正規表現で特定のHTMLタグのク...
-
正規表現で…
-
正規表現の書き方について
-
正規表現を使いimgタグ内から幅...
-
preg_match : マッチした位置の...
-
正規表現 画像リンクのaltの取得
-
正規表現で「0」のみ抽出
-
Smartyを使用した、テンプレー...
-
PHPで変数から1行目だけを取得...
-
VBAのコマンドボタンの文字列の...
-
1文字のStrConv fromUnicode
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで変数から1行目だけを取得...
-
VBAを使ってHTMLソースから特定...
-
、"(ダブルクォーテーション)...
-
PHPで<a>タグ内からURLと文字を...
-
preg_matchでエラーが出ます。
-
電話番号のチェック ハイフン...
-
正規表現でシングルクォーテー...
-
正規表現で「0」のみ抽出
-
Smartyで部分一致
-
正規表現で、半角大文字と半角...
-
C#でのワイルドカードを使った...
-
正規表現パターンの記入方法に...
-
Excelで数字のみを2倍3倍にする...
-
Smartyを使用した、テンプレー...
-
PHPメールフォーム URLと半角...
-
preg_matchの正規表現で
-
文字列から数値だけ取得するに...
-
「半角数字」と「+」を許可する...
-
php 正規表現で(ただし○○は除...
-
正規表現での改行数を求めるに...
おすすめ情報