Php 将阵列下载为文件

Php 将阵列下载为文件,php,arrays,codeigniter,Php,Arrays,Codeigniter,我正在使用codeigniter,并使用以下命令将信息从控制器传递到视图: $this->load->view('myview', $data); $data是一个数组,定义为: $data['people'] = .... 在我看来,作为展示人 foreach($people as $person) { echo $person->name . " " . $person->email; } 然后我有一个文件,它接受一个“person”对象数组,并基于它创建

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

 $this->load->view('myview', $data);
$data是一个数组,定义为:

$data['people'] = ....
在我看来,作为展示人

foreach($people as $person) {

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

}
然后我有一个文件,它接受一个“person”对象数组,并基于它创建一个csv文件

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


执行此操作的最佳方法是什么?

您可以使用数组创建一个CSV文件,并将其作为可下载文件,且路径在视图中

参考号

您可以在html中使用generate table,并使用javascript将其转换为csv


Ref

中的链接中传递数组是不可行的其奇怪之处
我建议您在链接中传递某个特定人员的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)



是的,但是如果用户不想下载csv,那么它是免费创建的,只会占用服务器资源。谢谢,但是iCal是由CI控制器生成的,因此我需要重定向到/icalgenerator并以某种方式将数组传递给控制器。
<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>