PHP array to csv - 总是重写文件
PHP array to csv - Always rewrites the file
我正在尝试将 3 个变量保存到一个 csv 文件中。我得到变量数据,然后创建一个包含它们的数组。我可以打开文件并写入它。我想在每次页面加载时存储以下数据:
- 推荐人
- 用户代理
- 日期
我的问题是,在每次加载页面时,它都会重写文件,而不仅仅是插入新数据。
有什么想法吗?
每条评论都会受到赞赏。
<?php
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = @$_SERVER["HTTP_REFERER"];
$referer = @$_SERVER['HTTP_REFERER'];
$userAgent = @$_SERVER['HTTP_USER_AGENT'];
$date = date('Y-m-d H:i:s');
$visitorData = array("referer", "userAgent", "date");
$result = compact($visitorData);
print_r($result);
$fp = fopen('file.csv', 'w');
foreach ($result as $fields) {
fputcsv($fp, $result, $delimiter = ',', $enclosure = '"');
}
fclose($fp);
exit();
?>
如@splah58 所说,您必须以 append 模式打开文件以添加数据,如下所示:
if( !isset( $_SESSION["origURL"] ))
$_SESSION["origURL"] = @$_SERVER["HTTP_REFERER"];
$referer = @$_SERVER['HTTP_REFERER'];
$userAgent = @$_SERVER['HTTP_USER_AGENT'];
$date = date('Y-m-d H:i:s');
$visitorData = array("referer", "userAgent", "date");
$result = compact($visitorData);
print_r($result);
$fp = fopen('file.csv', 'a'); // 'a' means 'append' instead of 'w' for 'writing' which always delete the file's content
foreach ($result as $fields) {
fputcsv($fp, $result, $delimiter = ',', $enclosure = '"');
}
fclose($fp);
exit();
我正在尝试将 3 个变量保存到一个 csv 文件中。我得到变量数据,然后创建一个包含它们的数组。我可以打开文件并写入它。我想在每次页面加载时存储以下数据: - 推荐人 - 用户代理 - 日期
我的问题是,在每次加载页面时,它都会重写文件,而不仅仅是插入新数据。
有什么想法吗? 每条评论都会受到赞赏。
<?php
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = @$_SERVER["HTTP_REFERER"];
$referer = @$_SERVER['HTTP_REFERER'];
$userAgent = @$_SERVER['HTTP_USER_AGENT'];
$date = date('Y-m-d H:i:s');
$visitorData = array("referer", "userAgent", "date");
$result = compact($visitorData);
print_r($result);
$fp = fopen('file.csv', 'w');
foreach ($result as $fields) {
fputcsv($fp, $result, $delimiter = ',', $enclosure = '"');
}
fclose($fp);
exit();
?>
如@splah58 所说,您必须以 append 模式打开文件以添加数据,如下所示:
if( !isset( $_SESSION["origURL"] ))
$_SESSION["origURL"] = @$_SERVER["HTTP_REFERER"];
$referer = @$_SERVER['HTTP_REFERER'];
$userAgent = @$_SERVER['HTTP_USER_AGENT'];
$date = date('Y-m-d H:i:s');
$visitorData = array("referer", "userAgent", "date");
$result = compact($visitorData);
print_r($result);
$fp = fopen('file.csv', 'a'); // 'a' means 'append' instead of 'w' for 'writing' which always delete the file's content
foreach ($result as $fields) {
fputcsv($fp, $result, $delimiter = ',', $enclosure = '"');
}
fclose($fp);
exit();