3

スタイル属性のみを取得しようとしています.phpで正規表現を使用してコンテンツを取得しています。

例えば

入力 <img src="test.png" style="float:left;"/>

望ましい出力 style="float:left;"


私が試したこと:

これは画像全体を返すようですが、その理由はわかりません。私は正規表現が苦手です。

$img = '<img src="test.png" style="float:left;"/>';
preg_match('/(<[^>]+) style=".*?"/i', $img, $match);

戻り値:

    [0] => Array
    (
        [0] => <img src="test.png" style="float:left;"
        [1] => <img src="test.png"
    )

ポインタを持っている人はいますか?

乾杯。

4

1 に答える 1

5

ほぼ正しいので、必要な部分を括弧で囲んでキャプチャするだけです。現在、間違った部分をキャプチャしています:

$img = '<img src="test.png" style="float:left;"/>';
preg_match('/<[^>]+ (style=".*?")/i', $img, $match);
$result = $match[1];

デモ

注: これは example<img>タグのような単純な入力に対しては機能しますが、HTML は通常の言語ではないため、より複雑な正規表現では HTML を解析するほど強力ではありません。十分に強力ではないことがわかった場合は、この種のことを目的としたDOMDocumentを使用できます。

于 2013-08-28T14:28:47.273 に答える