早上好,朋友们。我一直在努力和谷歌搜索,我似乎无法找到答案。如果它已经在这里得到解答而且我错过了,请随时指引我错过。
我有以下一些PHP代码。当我在我的Mac(以及一些朋友的非Windows机器)上运行它时它工作正常,但是当我在Windows上运行它(它将在这里工作时),它会将每行写入文本文件两次。这里的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);
?>
杰里米
答案 0 :(得分:1)
这可能与缺少的favicon.ico有关。
尝试将.htaccess更改为:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]
尝试创建一个favicon.ico文件,方法是创建一个空的.txt文件,将其重命名为favicon.ico。
许多浏览器都会查找favicon.ico文件,如果该文件不存在且您的.htaccess文件设置为指向您的脚本,则脚本将执行两次,文本将被添加两次到fee.txt
答案 1 :(得分:0)
这只有在您刷新页面时才有可能。您当前的代码会将您的内容附加到fees.txt文件中。
答案 2 :(得分:0)
看起来PHP_EOL可能会抛出你的文本编辑器。如果PHP_EOL定义为&#34; \ r \ n&#34;这可能会在文本文件中的行之间产生空格。
尝试将自己的行尾字符设置为&#34; \ n&#34;并查看是否可以解决此问题。
$strTransaction = $fltSupervision . "\t" . $fltDrugTestUA . "\t" . $fltAlcoholSensor . "\t" . $fltSurcharge . "\t" . $fltTotal . "\n";
答案 3 :(得分:0)
我在我的服务器上测试了你的代码并检查了它。可能还有其他原因导致这种情况(如果是这种情况),也许是您的表单本身。如果你重新加载页面两次,那么它会保存两次,因为FILE_APPEND
你可能偶然两次点击提交按钮吗?只是检查可能性。如果您不想附加,请取出, FILE_APPEND
答案 4 :(得分:0)
答案最终变得非常奇怪。经过大量测试后,我发现只有当我在工作时使用Windows机器从Windows服务器加载脚本时才会发生这种情况。如果客户端计算机不在我们的公司网络上,则其行为符合预期。由于奇怪的网络行为可能远远超出了原始帖子的范围,让我们把它作为答案。当我遵循Casper的建议并从我的Windows服务器上的命令行运行脚本时,我开始理解这一点。
谢谢大家给我的想法并帮助我学习更多知识。祝你有美好的一天。