str_replaceを使用して、読み込まれたtxtファイルから '#'文字で始まる特定の文字列を削除していますが、テスト時のhtml出力では#記号だけが削除されます。私が抱えている問題は、その特定の文字で始まるすべてのテキストを削除したいということです( '#'も含めて)。PHP複数の行全体をテキストファイルから削除する
は、これまで私が試してみました:
1)
$data = str_replace('#','',file_get_contents($strFileName));
return $data;
2)
fopen($strFileName,'r');
$remove = "#";
$tmpData = file_get_contents($strFileName);
$data = preg_replace("/.*\b" . $remove ."\b.*\n/ui", "#" , $tmpData);
return $data;
オリジナルのテキストファイルは次のようである:
#
# bla bla bla
#
# bla bla bla
#
# bla bla bla
最初の試行では#
文字は削除されましたが、残りの単語は残りました。 2つ目は全く動作しませんでした。おかげさまで
完璧、多くのありがとう。コメントがインデントされたときに行を削除する方法についてのヒント?たとえば、 "#comment bla bla"は字下げされており、上記の式はそれを検出しません。ありがとう – ASO
'\ s'を追加してください:$ data = preg_replace("/^ \ s *?#。*/m "、"、$ tmpData); ' – Federkun
それはそうしました。ありがとう:-) – ASO