将数组下载为文件

时间:2015-02-02 11:03:12

标签: php arrays codeigniter

我正在使用codeigniter并使用以下方法将信息从控制器传递到视图:

 $this->load->view('myview', $data);

$ data是一个数组,定义为:

$data['people'] = ....

在我看来,将人们视为

foreach($people as $person) {

echo $person->name . " " . $person->email;

}

然后我有一个文件,它接受一个'person'对象数组,并根据它创建一个csv文件。

在我看来,我有一个指向此类文件的链接,并希望将$ people数组传递给它。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用数组创建CSV文件,并将其作为可下载文件,并在路径中显示。

参考this

OR

您可以在html中使用generate table并使用javascript

转换为csv

参考This

答案 1 :(得分:0)

不可行奇怪的链接中传递数组。
我建议您在链接中传递特定人员的 id ,然后 通过再次查询数据库来获取该人的数据。

例如:

<强>控制器

class People extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('people_model');
    }

    public function people()
    {
        $data['people'] = $this->people_model->get_people();
        $this->load->view('myview', $data);
    }

    public function person_detail($person_id)
    {
        $person = $this->people_model->get_person($person_id);

        // Now you have that person's detail
        // Do whatever you want

        // Write in a file
        file_put_contents('filename.txt', print_r($person, true));
    }
}


查看(myview.php)

<table>

<?php foreach($people as $person) { ?>
<tr>
<td><a href="/people/person_detail/{$person->id}"><?php echo $person->id ?></a></td>
<td><?php echo $person->name ?></td>
<td><?php echo $person->email ?></td>
</tr>
<?php } ?>

</table>