みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

行頭に//ある行を削除する方法

いつもお世話になります。
phpで行頭に「//」あるとき、その行を削除する方法です。
php5では、
$FielList = preg_replace('/(\/\/)(.*)(\r\n)/','$3',$FielList);
で、できていたのですが、php4のサーバへアップしたら
//以降が残ってしまいました。
下の例で、//----コメント の行が残ってしまいます。

$FielListは、以下のようなイメージです。
//----コメント
aaa,bbbbbbbbbbbbbbbbbbbbbbbbb
ccc,ddddddddddddddddddddddddddd
よろしくお願いいたします。

投稿日時 - 2009-02-05 11:09:54

QNo.4690987

困ってます

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

ごめんなさい、タイプミス

$FielList = preg_replace('/^(\/\/.*?)([\r\n]+)/m','$2',$FielList);

投稿日時 - 2009-02-05 12:03:32

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

最短マッチの問題?

<?
$FielList =<<<eof
test//先頭ではないない場合は削除しない
//----コメント
aaa,bbbbbbbbbbbbbbbbbbbbbbbbb
ccc,ddddddddddddddddddddddddddd
eof;
$FielList = preg_replace('/^(\/\/.*?)([\r\n]*)/m','$2',$FielList);
print $FielList;
?>

投稿日時 - 2009-02-05 11:18:34

補足

yambejpさん、こんなに速くレスをありがとうございました。
だめでした。php5でも//-----の行が残ってしまうようになりました。
正規表現の記載方法が間違っているのだと思い最初の質問に書きませんでしたが、
$FielList は、SJISのテキストファイルから
$FielList = mb_convert_encoding(implode('', file($csvscj,FILE_SKIP_EMPTY_LINES)), "UTF-8", "SJIS");
で、読み込んだものです。
$csvscjにファイルパスを入れています。
改行コードは、crlfとしています。

投稿日時 - 2009-02-05 11:28:21

あなたにオススメの質問