PHPの質問です。


HTMLコードの中にある指定したコメント部分の中身を置き換えたいのですが、上手くいきません。


<!-- COMMENT_START -->置き換えたい文字列(正規表現を含む)<!-- COMMENT_END -->


ちなみに、こんな感じでやってみたのですがダメでした。
preg_replace('/<!-- COMMENT_START -->(.*?)<!-- COMMENT_END -->/', '置き換えた文字', HTMLファイル名);

回答の条件
  • 1人10回まで
  • 登録:2009/06/10 15:38:00
  • 終了:2009/06/10 17:23:24

ベストアンサー

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/06/10 16:57:16

ポイント100pt

正規表現での置換については下記になります。

<?php
$text = "あいうえお<!-- COMMENT_START -->(.*?)<!-- COMMENT_END -->かきくけこ";
$text = preg_replace('/(<!-- COMMENT_START -->).*?(<!-- COMMENT_END -->)/', '$1さしすせそ$3', $text);
echo $text;
?>

PHP: preg_replace - Manual


preg_replace はファイルを直接書き換えたりできませんので

(1)ファイルを読み込む

(2)上記の方法で置換

(3)ファイルへ書き込む

という手順が必要になるので下記のようになります。

※php のバージョンは5を想定しています。(前述の正規表現は4でもOK)

※MySQLなどと同様にバージョンによって違いがありますので

 次回からは忘れずに明記しておくことを勧めます。

※ファイルが無いとか書き込み権限が無いなどの理由で

 エラーが起こる場合の対処などは施してありません。

<?php
$text = file_get_contents('ファイル名');
$text = preg_replace('/(<!-- COMMENT_START -->).*?(<!-- COMMENT_END -->)/', '$1さしすせそ$3', $text);
file_put_contents('ファイル名', $text)
?>

PHP: file_get_contents - Manual

PHP: file_put_contents - Manual

id:black_kenchan

出来ました!

色々、教えてくださって有難う御座います。

2009/06/10 17:23:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません