0

テキストエリアフォームを持つhtmlページがあり、ユーザーがそのテキストエリアに入力して送信を押すと、phpはそのテキストエリアのコンテンツをtxtファイルに書き込みます。

このようなものをテキストエリアに挿入すると

line1 what's up
line2
line3

txtファイルに書き込むことになります

line1 what\'s up

line2

line3

余分な空白とその余分なスラッシュで。どうすればこれを修正できますか? ここにphpがあります

$myFile = "all.txt";
$fh = fopen($myFile, 'a') or die("can't open file");

$stringData = $content."\n";
fwrite($fh, $stringData);
fclose($fh);
4

3 に答える 3

1

テキストボックスからデータを取得する場合、データは実際には次のようになります。

line1 what's up\r\n
line2\r\n
line3

したがって\n、最後に余分な行を追加すると、追加の行が追加されます。

これに関しては\'、通常、magic_quotesを有効にすると発生します。で「magic_quotes」をすばやく検索するphpinfo()と、オンになっているかどうかがわかります。

于 2012-11-09T20:48:28.140 に答える
1

余分な改行は、ファイルを書き込んでいるものとファイルを読んでいるものとの間の行末の違いが原因である可能性があります。

おそらく、行を終了するために使用でき"\n"ます。

一重引用符の追加のエスケープ シーケンスはマジック クォートです。

次のコードを検討してください。

<?php 

ini_set('magic_quotes_gpc', 'off');
$content = str_replace("\r\n", "\n");

PHP_EOLオプションで、ホスト OS の行末に一致する定数を使用できます。

于 2012-11-09T20:54:30.717 に答える
0

magic_quotesが有効になっています。それを無効にするか、新しいPHPにアップグレードしてください。magic_quotesは悪魔のものであり、はるかに邪悪なものです。

于 2012-11-09T20:47:35.960 に答える