PHP正規表現でHTML内のコメントを置き換える方法

このQ&Aのポイント
  • PHPを使用して、事前にコメントを含めたHTMLを読み込み、コメント以外を置き換えて表示する方法を教えてください。
  • 具体的な置き換える処理については理解していますが、PHPの正規表現や置き換え方法がわかりません。どうぞよろしくお願いします。
  • 置き換える文字は空白でお願いします。
回答を見る
  • ベストアンサー

phpの正規表現 置き換え

html内にあらかじめコメントを付けておき、htmlをphpにて読み込んで そのコメントからコメント以外をphpにて置き換えて表示させたいと思います。 php読込についてはわかりますが、正規表現、置き換えがわかりません。よろしくお願いします。 置き換え文字はブランクでお願いします。 例: <html> htmlタグ 途中省略 ↓ここから------------------------------------- <!--スタート--> htmlタグ 途中省略 <!--終了--> ↑ここまでを置き換えたい。-------------------- htmlタグ 途中省略 </html>

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

スタートから終了までを削除すればいいのでしょうか? <? $html=<<<eof <html> いる1 <!--スタート--> いらない1 <!--終了--> いる2 <!--スタート--> いらない2 <!--終了--> いる3 </html> eof; $html=preg_replace("/<!--スタート-->.*?<!--終了-->\n/s","",$html); print $html; ?>

GETSTREET
質問者

お礼

説明が不十分にも関わらず完璧に理解して頂きありがとうございました。

関連するQ&A

  • PHP 正規表現

    はじめまして^^ 現在、PHPでプログラムを作っています。 そして、文字列の置き換えをする機会があり、 正規表現をつかうことになりました!! 置き換えに使う関数は、mb_ereg_replaceです! ある条件にあった部分の文字列を置き換えしたいと思っています。 そして、いろいろとやっていきましたら、あるひとつの壁にぶつかりました。。 例えば、PHPでは、正規表現の部分を [^文字]とやると、『文』と『字』という文字列以外にマッチという意味になるらしいのですが、 『文字』という文字列以外にマッチ、というふうに、表現したい場合は、 どう表現すればよいのですか? [^(文字)]とか、その他いろいろ、 自分なりに、色々ためしたのですが、うんともすんともいいません、、 どなたか、わかる方教えて下さいm(_ _)m

    • ベストアンサー
    • PHP
  • phpの正規表現について

    phpの正規表現についてです。 よく入力されたメール・パスワードを判定するのに正規表現で判定させますが、今回の指定する条件は… ・半角英数、0~9の組み合わせ ・使用禁止文字は \ ' @ [ ] の5つ ・入力は8文字以内 例 if(ereg("^[0-9a-z\!\"\#\$\%\&\(\)\=\-\~\|\{\}\;\:\+\*\,\.\/\<\>\?\_]{1,8}$", $pw)){ 記号の意味でよくわからないのがあるのですが、 { }は文字数を指定するものでよろしいのでしょうか? {1,8} は1~8文字までという意味? \が入ると認証が通ってしまってい、困っています。 ユーザーの入力    MySQLの取得結果 例 123\        → データが入らない   \123        → 123   \\123        → \123   123\123      → 123123   \\          → \ といった不具合になってしまい、MySQL側でも入力されたデータと異なったデータが入ってしまいます。\が入っても認証されないようにするにはどうすればいいんでしょうか? 正規表現の参考にしたサイトは http://itbtech.itboost.co.jp/php/php_06.php です。アドバイスよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP5の正規表現でうまくマッチできない

    PHP5の正規表現で文字列中の独自タグをパースしようとしていて、 うまくいかず困り果てています。 正規表現パターンは、/<tag>.*<\/tag>/ 対象文字列は、<tag>こんにちは</tag><tag>こんばんは</tag> preg_match_all('/<tag>.*<\/tag>/', '<tag>こんにちは</tag><tag>こんばんは</tag>', $result) でマッチした文字列は、 $result[0]:<tag>こんにちは</tag> $result[1]:<tag>こんばんは</tag> となることを期待しているのですが、 実際は、 $result[0]:<tag>こんにちは</tag><tag>こんばんは</tag> となりました。 <tag>タグの間に入る文字列長、文字列フォーマットは不定です。 どうすれば期待通りの振る舞いに出来るでしょうか?

    • ベストアンサー
    • PHP
  • 正規表現を使って置き換え

    以下のような文字列をテキストファイルから消去したいのですが、正規表現を使って可能でしょうか? 秀丸を使っていますが、その方法があれば教えてください。省略のところの文字列は異なりますし、改行の数も違います。 --[PR]------------------------------------------------------------------ ■■■■本場!■■■■送料無料キャンペーン!!■■■ ――省略―― ------------------------------------------------------------------[PR]--

  • Excel2007で正規表現置き換え

    Excel2007で正規表現を利用して文字列を置き換えしたいと考えています。 Office2003系列のExcelではそういうアドインがあったようです。 (使ったことはないので、どのバージョンまで使えるとかは知らないですが) http://srcedit.pekori.jp/tool/excelre.html 上記のアドインはExcel2007でも使えるのでしょうか? また使えないのでしたら、それに変わるような2007用のアドインがあるのでしょうか? 置き換えしたいデータは以下のようなものです。 1.日付が数字8桁で”文字列として認識されて”入力されている。   例)20080430 2.それを”/”で区切って日付の形式にしたい。   例)2008/04/30 現在は以下のような方法で同じ事を行っています。 A.8桁で入っている列をすべて選択し、形式を数値に変え、コピーしメモ帳に貼り付けます。 B.メモ帳からExcelの同じ選択している列にそのまま貼り付けます。これで数値として認識されます。 C.今度は表示形式を「####"/"##"/"##」とし、数値をスラッシュで区切ります。 D.それをさらにコピーし、メモ帳に貼り付けます。スラッシュ付きの数字として張り付きます。 E.それをコピーし、同じ選択している列に貼り付けます。 F.数値形式のところにスラッシュ区切りのデータを入力したので形式を日付に変更します。 というようなことをしています。 これでもできるのですが、これ以外にも色々と正規表現を利用して置き換えしたいことが出てきた場合はそちらを利用したいので、もしあればお願いします。

  • 文字列全体に対する置き換え [正規表現]

    正規表現での文字列全体に対する、マッチ箇所 への置き換えについて、アドバイスをもらえないでしょうか。 parlでいうg修飾子はphpには無く、 例えば、[preg_match]は[preg_match_all]という関数で対応出来ますが、 置き換えを行う[preg_replace]には[preg_replace_all]がありません。 それに類する関数も無いように思います。 これに関して、PHPではどのように対応すれば良いのでしょうか。

    • ベストアンサー
    • PHP
  • php内 正規表現で特定文字を削除したい

    phpの正規表現での置き換えに関しまして、ご質問をさせて頂きます。 宜しくお願い致します。 utf8のphp内で、 以下のような文字列(例1、例2)を$urlに入れて、<?php $url_regex = preg_replace('ホニャララ' , '' , $url) ;?>で、$url_regexに統一した出力結果をえたいと考えています。 例1) $url = /jhk/3つ目がとおる.html $url = /jhk/21-3つ目がとおる/呪文.html/ $url = /jhk/21-3つ目がとおる/呪文/ホアカバリキルマ.html ↓ いずれも $url_regex = /jhk/3つ目がとおる.html 例2) $url = /jhk/ドラクエ.html $url = /jhk/34-ドラクエ/呪文.html/ $url = /jhk/34-ドラクエ/呪文/イオナズン.html ↓ いずれも $url_regex = /jhk/ドラクエ.html この場合、正規表現'ホニャララ'はどのような記述にすれば良いか分からずに困っています。 また、この方法で置き換えは可能なのか否かも不明です。 詳しい方がいらしゃいましたら、ご教示、アドバイスいただければ幸いです!

    • ベストアンサー
    • PHP
  • 正規表現での置き換え

    正規表現で取り込んだテキストファイルの置き換えをしようとしています。 テキストファイルには Vol:down1b (Vol:down1b (F:\download1\sampledata))\sample.jpg Vol:down1b (Vol:down1b (F:\download1\sampledata))\sample2.jpg と入ってます。 Perlのプログラムでは $moto = "Vol:down1b (Vol:down1b (F:\download1";#1の置き換え元 $ato = "down1";#1の置き換え後 $moto = quotemeta($moto); open(IN,"list.txt") || die "ファイルが見つからないので終了します。"; @file=<IN>; for(@file){ $_=~s/$moto/$ato/; } close(IN); print"@file[10]","\n"; と書きましたが、なぜか置き換えがうまくいきません。 $moto変数の中にある(とかの文字があるのがだめなのでしょうか? quotemeta関数でエスケープはつけてるつもりですが・・・ 教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • PHPでのNULLの正規表現

    PHPの正規表現で、使える文字が数字またはコンマの場合の書き方 '/^[0-9,]+$/' に使える文字として、NULL文字も追加したいのですが、 その書き方がよく分かりません。 正規表現としては、どのように書けばいいのでしょうか?

    • 締切済み
    • PHP
  • 先頭にindex.phpを含まない正規表現の置換

    IISサーバーのRewriteモジュールを使用したURLの置き換えで正規表現がわからず困っております。 Concrete5の機能「プリティーURLを使用する」にて、IISサーバーは.htaccessが使えなく、代わりにweb.configを使う方法があると知ったのですが、正規表現がわからずに困ってます。 1時間ほど試行錯誤しながら正規表現の勉強してますが、それでもできません。 index.phpを先頭に含まない文字列を検索する正規表現を教えていただけないでしょうか

専門家に質問してみよう