0

状況があります。このコードを使用してphpを使用してhtmlページを読みました$body = file_get_contents('index.htm');

index.htmファイルには、以下のようなhtmlコードが含まれています。これは、条件によって削除/依存する必要がある場合があるため、削除する必要がある場合とそうでない場合があります。

<td><table><tr><td></td></tr></table></td>

PHPを使用してtdタグ間のテーブルセクション全体を削除するにはどうすればよいですか。

4

3 に答える 3

2

幸運にもページが XML である場合は、DOM を形成し、DOM から を削除できます。それ以外の場合は、入れ子になった s がない限り、正規表現は簡単なはずです<table>(その場合でも可能ですが、よりトリッキーです)。

于 2009-07-28T08:26:57.630 に答える
1

それを行う1つの方法は

$str = '<td><table><tr><td></td></tr></table></td>';
preg_match('/(<td>)(<table>.*<\/table>)(<\/td>)/',$str,$matches);

結果の配列

Array
(
    [0] => <td><table><tr><td></td></tr></table></td>
    [1] => <td>
    [2] => <table><tr><td></td></tr></table>
    [3] => </td>
)

を再作成するために使用できます

 '<td></td>' 

テーブルセクションなし

于 2009-07-28T09:32:56.980 に答える
1

正規表現の置換を使用して、tdの間のテーブルを削除できます。

$html=preg_replace('/<td([^>]*)><table[^>]*>.*<\/table><\/td>/', '<td$1></td>', $html);

これは、属性がある場合にも機能しますまたはあなたの

私はそれを自分で試しました(RegEx Tester)、うまくいきます。あなたにもうまくいくことを願っています。

于 2009-07-28T10:00:46.427 に答える