に属性の属性:PHP - HTMLの文字列を分割私はHTMLで文字列を持っているインデックス付きの配列
のように、インデックス付きの配列にその文字列を変換する方法$attribs = ' id= "header " class = "foo bar" style ="background-color:#fff; color: red; "';
:
array(
'id' => 'header',
'class' => array('foo', 'bar'),
'style' => array(
'background-color' => '#fff',
'color' => 'red'
)
)
ですから、PHPのarray_merge_recursive関数を使用して2組のHTML属性をマージすることができます。
は、あなたがその情報を抽出するために、正規表現を使用することができ、あなたに
はあなたのガンボ、あなたの正規表現をありがとうクールです。 唯一の問題は$ attrs ['class']または$ attrs ['style']が文字列を返すためです。たとえば、2つの属性セットをマージするなど、別の$ attribs文字列とマージすることは困難です。 $ attribs1 = 'クラス= "fooバー"'; $ attribs2 = 'class = "lorem"'; を 'class = "foo bar lorem"に置き換えます。 $ attrs [' class ']は配列を返します:array(' foo '、' bar ') これを改善するアイデアはありますか? – abernier
私は本当にこの解決策が大好きです...しかし、私は正規表現xDを得られません。それは私の頭のために少しです。 – lumio
私はちょうどHTML5スタイルのブール属性(=記号なし)と'(\ w +)\ s *(= * s)([*])\ 2 \ s)? –