我正在使用Php创建一个学校项目的联系人列表。我将所有的联系信息存储在一个.csv文件中。我设法在index.php中动态显示csv文件。联系人列表中的每个人都有分配给他们的唯一in。现在,我正在努力编辑基于唯一I的csv文件。这些是我到目前为止所写的代码。
function
edit_csv($filename, $no_rows, $id){
$file_open = fopen($filename, 'w');
foreach ($no_rows as $newRow){
if($newRow[0] === $id){
file_put_contents($filename, serialize($newRow));
}
}
fclose($file_open);
}
function edit_Contact($titleEdit,$fnameEdit,$lnameEdit,$emailEdit,$websiteEdit,$cPhoneNumEdit,$hPhoneNumEdit,$oPhoneNumEdit,$twitterEdit,$facebookEdit,$commentEdit){
$data = read_csv('contract_data.csv'); // just reads the .csv file
$handle = fopen('ids', 'r'); // unique id stored here.
$id = fread($handle, filesize('ids'));
fclose($handle);
$data[] = array(
'sr_no' => $id,
'Title' => $titleEdit,
'FirstName' => $fnameEdit,
'LastName' => $lnameEdit,
'email' => $emailEdit,
'website' => $websiteEdit,
'CellPhoneNumber' => $cPhoneNumEdit,
'HomePhoneNumber' => $hPhoneNumEdit,
'OfficePhoneNumber' => $oPhoneNumEdit,
'twitter' => $twitterEdit,
'Facebook' => $facebookEdit,
'Comment' => $commentEdit
);
edit_csv('contract_data.csv', $data, $id);
return $data;
}
发布于 2017-11-16 06:56:05
用fputcsv代替file_put_contents怎么样,如下所示:
示例代码:-
$path = "C:\\path\\to\\your\\file.csv";
if (($handle = fopen($path, "r+")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($data[0]==2){ //desired line to update
$write_data = array(
'sr_no' => $id,
'Title' => $titleEdit,
'FirstName' => $fnameEdit,
'LastName' => $lnameEdit,
'email' => $emailEdit,
'website' => $websiteEdit,
'CellPhoneNumber' => $cPhoneNumEdit,
'HomePhoneNumber' => $hPhoneNumEdit,
'OfficePhoneNumber' => $oPhoneNumEdit,
'twitter' => $twitterEdit,
'Facebook' => $facebookEdit,
'Comment' => $commentEdit
);
fputcsv($handle, $write_data, ',', '"');
unset($write_data);
}
}
fclose($handle);
}
https://stackoverflow.com/questions/47304352
复制