PHP-preg_match或等效于多个HTML Lines对象以创建数组

时间:2018-08-29 11:22:08

标签: php regex fpdf

我正在使用一段看起来像这样的代码(从fpdf创建以html标签属性为键,然后为值的数组)

//Extract attributes
$a2=explode(' ',$e);
$tag=strtoupper(array_shift($a2));
$attr=array();
$attrStyle=array();
foreach($a2 as $v)


    if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3))
    $attr[strtoupper($a3[1])]=$a3[2];



    $this->OpenTag($tag,$attr);

当$ v这样的东西时,它工作得很好。

  • src="images/intro_doc_AA.png"
  • alt="intro"
  • width="388"
  • height="408"

但是使用HTML5样式格式(无法更改),有时我需要为$ v提供类似的东西:

  • style="width:
  • 300;
  • height:
  • 485;"

我正在尝试获得类似的东西,所以我可以使用它:

$attrStyle=Array(width->300, height->485) 

感谢您的宝贵时间,NG。

1 个答案:

答案 0 :(得分:0)

if (preg_match('/([^=]*)=(["\']?)(.*?)\2/s', $v, $a3)) {
    $attr[strtoupper($a3[1])]=$a3[3];
}

但这很明显:不要通过RegExp解析HTML。