我已經創建了一個基於Web的打印日誌,它使用PHP將表單數據發送到.CSV文件。一切似乎都正常工作。雖然,我發現了一個我似乎無法解決(但)的小錯誤。將PHP Web窗體轉換爲CSV格式Bug
打印日誌中有七個條目提交給.CSV文件。其中兩個條目是從兩個不同的.DAT文件填充的下拉列表,每日更新。
問題:
在成功提交表單數據並打開.csv文件我注意到,使用下拉列表中爲兩個實體的格式比其他數據不同。
你可以看到我通過查看下面的屏幕截圖的意思是: http://i49.tinypic.com/2n87eko.jpg
我相信這個問題是由下面的代碼拉動「項目號」和「僱員姓名」未來下拉框數據:
<?php
$file = 'dat_files/Employees.dat';
$handle = @fopen($file, 'r');
if ($handle) {
while (!feof($handle)) {
$line = fgets($handle, 4096);
$item = explode('|', $line);
echo '<option value="' . $item[0] . '">' . $item[0] . '</option>' . "\n";
}
fclose($handle);
}
?>
任何幫助或想法將不勝感激。謝謝。
下面是用於將表單數據發送到.CSV文件的代碼。
<?php
if(isset($_POST["submit"]))
{
$type = $_POST["type"];
$date = $_POST["date"];
$job_number = $_POST["job_number"];
$phase = $_POST["phase"];
$task = $_POST["task"];
$number_copies = $_POST["number_copies"];
$name = $_POST["name"];
if(empty($type)||empty($date)||empty($job_number)||empty($phase)||empty($task)||empty($number_copies)||empty($name))
{
header('Location: submit/unsuccessful.htm');
die;
}
$cvsData = "\"$type\",\"$date\",\"$job_number\",\"$phase\",\"$task\",\"$number_copies\",\"$name\"".PHP_EOL;
$fp = fopen("log.csv", "a");
if($fp)
{
fwrite($fp,$cvsData); // Write information to the file
fclose($fp); // Close the file
header('Location: submit/successful.htm');
}
}
?>
我剛剛意識到更多關於這個格式問題。從下拉列表中拖出的兩個條目將自動設置爲excel中.CSV文件中的「包裝文本」。到目前爲止還不確定是否有修復。 –
您是否在記事本中看到多餘的換行符?我只是在我的服務器上運行你的代碼,並沒有任何包裝文本問題 –
@LloydBanks有趣的發現。我只是看着記事本,我也看到了換行符。如果我刪除記事本中的所有換行符,保存它,在Excel中重新打開時格式化問題就會消失。 –