2017-04-20 2 views
-1

各テーブルの前に最初の "span"のフォントサイズを置き換える/取得し、テーブルスタイル定義でspanフォントサイズを使用するが、スパンはまだクローズドスパンタグではなく、クローズタグなしでなければならないregexパターンに関する助けが必要です。テーブルを含むスパンを探して、テーブルのフォントサイズを設定しますか?

から:

<span style="font-size:10px;"> 
<table>...</table> 
</span> 

へ:

<span style="font-size:10px;"> 
<table style="font-size:10px;">...</table> 
</span> 

それはすべての上と同じことを行うフォントサイズでいくつかのスパン内にある各「表」のために行く必要があります。

+1

をhttp://stackoverflow.com/a/ 1732454/717214) –

+0

正規表現ではない場合はどうすればよいですか? – p3ro

+0

リンクされたポストを見てください - HTMLパーサが答えです。 –

答えて

0

htmlパーサーを使用、htmlを解析するPHP: DOMDocument、すなわちのようなものregexを使用しないでください([HTMLを解析するために正規表現を使用しないでください]

$html = <<< EOF 
<span style="font-size:10px;"> 
<table>...</table> 
</span> 
EOF; 

$dom = new DOMDocument(); # create DOMDocument 
$dom->loadHTML($html); # Load $html into DOMDocument 

foreach ($dom->getElementsByTagName('table') as $item) { # find all table elements in html 

    $parent = $item->parentNode; # get parent node (<span>) 
    $parent_style = $parent->getAttribute('style'); # get style attribute for parent node 
    $item->setAttribute('style', $parent_style); # set $parent_style as style attribute 
    echo $dom->saveHTML(); 
} 
+0

これは良い例ですが、私のテーブルはこのテーブルを含むspanからfont-sizeを使用していますが、スパンスタイルで使用するフォントサイズを得る方法はありますか?私はそれが正しいHTML構文ではないことを知っているが、それはどのように私はhtmlを取得します。 – p3ro

+0

あなたは 'parent'要素を取得し、' style'の値を取得するために 'getAttribute'を使う必要があります。私は私の答えを更新しました。 –

+0

ありがとうございます!それは動作し、私が必要なものだと思われる – p3ro

関連する問題