0

おはよう、友達。私は苦労してグーグルで検索しましたが、答えが見つからないようです。すでにここで回答されていて、見逃した場合は、遠慮なく私が見逃したものを教えてください.

次のPHPコードがあります。私の Mac (および一部の友人の Windows 以外のマシン) で実行すると問題なく動作しますが、Windows (職場で使用する予定) で実行すると、各行がテキスト ファイルに 2 回書き込まれます。ここで動作している PHP は、IIS 6 で実行されている 5.3.6 です。

どんな助けでも大歓迎です。

<?php

$fltSupervision = trim(htmlentities($_POST["txtSupervision"]));
$fltDrugTestUA = trim(htmlentities($_POST["txtDrugTestUA"]));
$fltAlcoholSensor = trim(htmlentities($_POST["txtAlcoholSensor"]));
$fltTotal = trim(htmlentities($_POST["txtTotal"]));
$fltSurcharge = trim(htmlentities($_POST["txtSurcharge"]));

$strTransaction = $fltSupervision . "\t" . $fltDrugTestUA . "\t" . $fltAlcoholSensor . "\t" . $fltSurcharge . "\t" . $fltTotal . PHP_EOL;
echo $strTransaction;

$file = 'fees.txt';
file_put_contents($file, $strTransaction, FILE_APPEND);

?>

ジェレミー

4

5 に答える 5

0

PHP_EOL がテキスト エディタをスローしているようです。PHP_EOL が "\r\n" と定義されている場合、テキスト ファイルの行間にスペースが生じる可能性があります。

独自の行末文字を「\n」だけに設定してみて、これで問題が解決するかどうかを確認してください。

$strTransaction = $fltSupervision . "\t" . $fltDrugTestUA . "\t" . $fltAlcoholSensor . "\t" . $fltSurcharge . "\t" . $fltTotal . "\n";
于 2013-10-24T13:57:34.750 に答える
0

サーバーでコードをテストしたところ、チェックアウトされました。これを引き起こしている何かが他にある可能性があります (その場合)、おそらくフォーム自体です。ページを 2 回リロードすると、はい、2 回保存されます。FILE_APPEND

間違って送信ボタンを 2 回押してしまったのではないでしょうか? 可能性をチェックするだけです。追加したくない場合は、削除してください, FILE_APPEND

于 2013-10-24T14:09:23.793 に答える
0

答えはかなり奇妙になります。多くのテストを行った結果、職場の Windows マシンを使用して、職場の Windows サーバーからスクリプトをロードした場合にのみ発生することがわかりました。クライアント マシンが企業ネットワーク上にない場合、期待どおりに動作します。奇妙なネットワークの動作はおそらく元の投稿の範囲をはるかに超えているため、それを答えとしましょう. Casper のアドバイスに従い、Windows サーバーのコマンド ラインからスクリプトを実行したとき、私はこれを理解し始めました。

アイデアを提供し、もう少し学ぶのを手伝ってくれてありがとう。すてきな一日を。

于 2013-10-28T02:52:10.283 に答える