人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpを利用してのhtmlタグ除去の質問です。

例:
----------------------------
<html>
<body>
<body> <---不要

内容

</body> <--- 不要
</body>
</html>
----------------------------

置換後

----------------------------
<html>
<body>

内容

</body>
</html>
----------------------------


上記のようなhtmlがあった場合、
内側の不要な <body> </body> だけを削除したいのですが、
preg_replace などの関数を使ってどのような条件を書けば不要なbodyタグだけを削除することができるでしょうか?

困っています。
よろしくお願いいたします。


●質問者: kajuun
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

こんな感じでしょうか。

<?php
$html = ...

if (preg_match('/(.*?<body>)(.*)(<\/body>.*)/si', $html, $matches)) {
 $prefix = $matches[1];
 $body = $matches[2];
 $suffix = $matches[3];
 $new_body = preg_replace('/<\/?body>\s*/i', '', $body);

 $html = $prefix . $new_body . $suffix;
}

var_dump($html);

質問で書かれている内容以外に、以下のようなことを前提にしています。

idoone.com で試してみたのがこちらです。
http://ideone.com/mafqXB

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ