如何避免使用codeigniter

时间:2015-06-28 05:48:29

标签: php codeigniter file-writing

我有一个文件编写代码..数据在控制器中正确得到。 但代码正在for循环中工作.. 迭代没问题。 显示控制器中的所有数据 创建一个文件log_date.txt但只写最后一个数据是我的问题..

$file_path='./application/assets/login/log_'.date'.txt',$data);
if(file_exists($file_path))
{
    write_file(APPPATH'/assets/login/log_'.$todate.'.txt', $data);
}
else
{
    write_file(APPATH'./assets/login/log_'.$todate.'.txt', $data);
}

1 个答案:

答案 0 :(得分:1)

我想如果文件存在,那么你想要将数据附加到它。否则你想创建一个文件并添加数据吗?如果您担心这一点,则可以使用write_file函数中的可选第3个参数更改文件写入模式。默认情况下,它是 wb覆盖文件的地方。但是,使用a方法,您可以在文件中添加新行而不会覆盖它。

$file_path = APPPATH . "/assets/login/log_.$todate.txt";
if(file_exists($file_path))
{
    write_file($file_path, $data, 'a');
}
else
{
    write_file($file_path, $data);
}

更好的是,您可以在没有控制语句的情况下执行您想要的操作,因为a模式首先检查文件是否存在,然后创建它,否则它只是附加数据。所以只有下面的部分就足够了,没有控制声明。

$file_path = APPPATH . "/assets/login/log_.$todate.txt";
write_file($file_path, $data, 'a');

修改:

要在循环中运行新行时添加新行,请在$data添加新行:

$file_path = APPPATH . "/assets/login/log_.$todate.txt";
write_file($file_path, $data . "\r\n", 'a');