如果php中的a
write
end of file
w
write
beginning of file
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Datacast_ctr extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('csvreader');
$this->load->helper('csv');
}
public function index()
{
$this->load->library('csvreader');
$filePath = 'C:\xampp\htdocs\Datacast\bin\pdw_table.csv';
$data['csvData'] = $this->csvreader->parse_file($filePath);
$this->load->view('datacast_view', $data);
}
function write_csv()
{
$R1 = $this->input->post('val1');
$R2 = $this->input->post('val2');
$R3 = $this->input->post('val3');
$H1 = $this->input->post('valh1');
$R4 = $this->input->post('val4');
$R5 = $this->input->post('val5');
$H2 = $this->input->post('valh2');
$H3= $this->input->post('valh3');
$R6 = $this->input->post('val6');
$R7 = $this->input->post('val7');
$R8 = $this->input->post('val8');
$R9 = $this->input->post('val9');
$R10 = $this->input->post('val10');
$R11 = $this->input->post('val11');
$R12 = $this->input->post('val12');
$R13 = $this->input->post('val13');
$H4 = $this->input->post('valh4');
$R14 = $this->input->post('val14');
$R15 = $this->input->post('val15');
$R16 = $this->input->post('val16');
$data = $R1.",".$R2.",".$R3.",".$H1.",".$R4.",".$R5.",".$H2.",".$H3.",".$R6.",".$R7.",".$R8.",".$R9.",".$R10.",".$R11.",".$R12.",".$R13.",".$H4.",".$R14.",".$R15.",".$R16;
$list = array($data);
$file = fopen("./bin/pdw_table.csv","a");
foreach ($list as $line)
{
fputcsv($file,explode(',',$line));
}
fclose($file);
redirect('datacast_ctr');
}
}
<head>
<title> Datacast </title>
<!-- css stylesheets -->
<link href="<?php echo base_url();?>source/css/bootstrap.css" rel="stylesheet" media="screen">
<link href="<?php echo base_url();?>source/css/style.css" rel="stylesheet" media="screen">
<!-- jQuery -->
<script src="http://code.jquery.com/jquery.js"></script>
<script src="<?php echo base_url();?>source/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="functions.js"></script>
<link href="<?php echo base_url(); ?>plugins/jquery_ui/jquery-ui.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="<?php echo base_url(); ?>plugins/jquery_ui/jquery-1.9.1.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>plugins/jquery_ui/jquery-ui.js"></script>
<script>
$(function() {
$('#btnAdd').click(function() {
$('.td1').toggle('show');
});
});
function submit()
{
document.getElementById('add1').submit();
return true;
}
function edit_submit()
{
document.getElementById('edit1').submit();
return true;
}
$(document).ready(function(){
$('.btnEdit').editable();
});
</script>
</head>
<body>
<br/><br/><br/>
<div class="row-fluid offset9">
<div class="container">
<div class="row">
<div id="navigation-menus">
<div id="btnAdd" name="btnAdd" class="span1" style="cursor: pointer;">
<div class="menu-add">Add</div>
</div>
</div>
</div>
</div>
</div>
<div id="div1" class="row-fluid">
<div class="span12">
<table class="table table-hover table-striped table-bordered" id="table-data">
<thead>
<tr>
<th>Field 1</th>
<th>Field 2</th>
<th>Field 3</th>
<th>Field 4</th>
<th>Field 5</th>
<th>Field 6</th>
<th>Field 7</th>
<th>Field 8</th>
<th>Field 9</th>
<th>Field 10</th>
<th>Field 11</th>
<th>Field 12</th>
<th>Field 13</th>
<th>Field 14</th>
<th>Field 15</th>
<th>Field 16</th>
</tr>
</thead>
<tbody>
<?php foreach($csvData as $field)
{
?>
<tr>
<td><?php echo $field['Field 1']; ?></td>
<td><?php echo $field['Field 2']; ?></td>
<td><?php echo $field['Field 3']; ?></td>
<td><?php echo $field['Field 4']; ?></td>
<td><?php echo $field['Field 5']; ?></td>
<td><?php echo $field['Field 6']; ?></td>
<td><?php echo $field['Field 7']; ?></td>
<td><?php echo $field['Field 8']; ?></td>
<td><?php echo $field['Field 9']; ?></td>
<td><?php echo $field['Field 10']; ?></td>
<td><?php echo $field['Field 11']; ?></td>
<td><?php echo $field['Field 12']; ?></td>
<td><?php echo $field['Field 13']; ?></td>
<td><?php echo $field['Field 14']; ?></td>
<td><?php echo $field['Field 15']; ?></td>
<td><?php echo $field['Field 16']; ?></td>
<td><a class="btnEdit" onclick="edit();" style="cursor: pointer;">Edit</a> <a style="cursor: pointer;" class="btnDelete">Delete</a></td>
</tr>
<?php }?>
<form method="post" name="add1" id="add1" action="<?php echo base_url();?>index.php/datacast_ctr/write_csv" autocomplete="off">
<tr class="td1" id="td1" >
<td><input type="text" name="val1" id="val1"/></td>
<td><input type="text" name="val2" id="val2"/></td>
<td><input type="text" name="val3" id="val3"/></td>
<td style="display: none;"><input type="hidden" name="valh1" id="valh1"/></td>
<td><input type="text" name="val4" id="val4"/></td>
<td><input type="text" name="val5" id="val5"/></td>
<td style="display: none;"><input type="hidden" name="valh2" id="valh2"/></td>
<td style="display: none;"><input type="hidden" name="valh3" id="valh3"/></td>
<td><input type="text" name="val6" id="val6"/></td>
<td><input type="text" name="val7" id="val7"/></td>
<td><input type="text" name="val8" id="val8"/></td>
<td><input type="text" name="val9" id="val9"/></td>
<td><input type="text" name="val10" id="val10"/></td>
<td><input type="text" name="val11" id="val11"/></td>
<td><input type="text" name="val12" id="val12"/></td>
<td><input type="text" name="val13" id="val13"/></td>
<td style="display: none;"><input type="hidden" name="valh4" id="valh4"/></td>
<td><input type="text" name="val14" id="val14"/></td>
<td><input type="text" name="val15" id="val15"/> </td>
<td><input type="text" name="val16" id="val16"/></td>
<td><a onclick="submit();" style="cursor: pointer;">Save</a></td>
</tr>
</form>
</tbody>
</table>
</div>
</div>
<div class="row-fluid">
<div class="span12"></div>
</div>
</body>
如果我想编辑csv文件中的现有数据并且数据的位置在中间行,该怎么办?我应该使用什么来更新现有数据或进行编辑?
下面是我在控制器和视图中的代码。我现在需要知道的是将自动更新为CSV文件的编辑和删除。提前感谢您的帮助:)
CONTROLLER
{{1}}
查看
{{1}}
答案 0 :(得分:0)
这是使用file_get_contents和file_put_contents的一个非常简单的示例。它不应该与大型csv文件一起使用,仅用于描述可能的方法:
$csvData = file_get_contents($filename);
$csv = explode("\n", $csvData);
$newData = array();
foreach($csv as $rowData) {
$row = explode(";", $rowData);
//change your data here
$newData[] = implode(";", $row);
}
$newData = implode("\n", $newData);
file_put_contents($filename, $newData);
如果要解析大型csv文件,可以查看提供的示例here