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

PHP初心者です。
mb_ereg_replaceを使い下記のようなテキストの%%start%%から%%end%%までを違う文字に置換したいのですが上手く行きません。
上手くいくコードを教えてください。
----------x.txt
%%start%%
あいうえお
%%end%%
-----------

以下のコードを書いて試してているのですが「あいうえお」という結果になって欲しいのに全部表示されてしまいます・・・。
---------------------php
$fp = fopen("x.txt", "r");
$msg = "";
while ($x = fgets($fp)) {
$x = mb_ereg_replace("%%start%%[\\r\\n](.*)[\\r\\n]%%end%%","\\1",$x, "m");
$msg .= $x;
}
var_dump($msg);

●質問者: php-beginner
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:FP PHP txt あいうえお コード
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● GEN111
●60ポイント ベストアンサー

fgets は一行ずつ読み込むので while ループの中で x.txt は「%%start%%」「あいうえお」「%%end%%」に分割されて mb_ereg_replace に渡されることになり、パターンにマッチしません。

while ($x = fgets($fp)) {
 $msg .= $x;
}
$msg = mb_ereg_replace("%%start%%[\\r\\n](.*)[\\r\\n]%%end%%","\\1",$msg, "m");

のようにするか、file_get_contents で全体を取得して、

$msg = file_get_contents('x.txt') ;
$msg = mb_ereg_replace("%%start%%[\\r\\n](.*)[\\r\\n]%%end%%","\\1",$msg, "m");

のようにするのがよいかと思います。

◎質問者からの返答

ありがとうございます!

解決しました。

関連質問


●質問をもっと探す●



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