0

I have a string in this form :

<strong>dsds </strong><em>sdqsd </em><span style='text-decoration: underline;'>test</span>

and i want to put it in an associative array :

array('strong' => 'dsds' , 'em' => 'sdqsd' , 'underline' => 'test');

in a way that the order of elements int this array have to be the same as their order in the string .

which means if i have for example :

<span style='text-decoration: underline;'>test</span><strong>dsds </strong><em>sdqsd </em>

i get :

 array( 'underline' => 'test', 'strong' => 'dsds' , 'em' => 'sdqsd');

I tried doing it by using strpos in a loop but that's a lot of iterations specialy if i have a big string, so is there a simpler way using regex ?

Thanks.

4

1 に答える 1

1

1、解析された HTML ステートメントごとに各タイプのタグが 1 つしかない場合にのみ、タグ名を配列インデックスとして使用できます。

2、多分このライブラリが役立つでしょう: http://simplehtmldom.sourceforge.net/

3, または、正規表現を使用してカスタム パーサーを作成します。これは、大きな CPU パフォーマンス要件があるため、私が実際に提案するソリューションではありません。

于 2012-04-25T13:30:30.397 に答える