标签: fputcsv

使用laravel将整个表导出为CSV

我是laravel的新手,并且很难找到将一个表导出到csv的方法.我在控制器类中尝试了以下代码,但它给了我一个错误:

    public function get_export()
{
    $table = Cpmreport::all();
    $file = fopen('file.csv', 'w');
    foreach ($table as $row) {
        fputcsv($file, $row);
    }
    fclose($file);
    return Redirect::to('consolidated');
}
Run Code Online (Sandbox Code Playgroud)

Cpmreport的模型类:

    class Cpmreport extends Eloquent
    {
      public static $table='cpm_report';
    }
Run Code Online (Sandbox Code Playgroud)

错误 :

    Message:

    fputcsv() expects parameter 2 to be array, object given

    Location:

    C:\xampp\htdocs\cpm_report\application\controllers\cpmreports.php on line 195
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

php csv export fputcsv laravel-3

5
推荐指数
2
解决办法
2万
查看次数

使用fputcsv将BOM添加到CSV文件

我生成了一个包含外来字符的简单CSV文件.我已经注意到,如果我没有包含字节顺序标记,外国字符在Excel中没有正确显示(但是当存在BOM时它们看起来很好).

如何在首次创建文件时将BOM添加到文件的开头?我尝试了以下内容并且无法正常工作: - /

function processForm($competition, $competitionEntry) {
    $BOM = "\xEF\xBB\xBF"; // UTF-8 BOM

    $filename = $competition->ID.".csv";
    $file = "entries/".$filename;     

    $fields = array_keys($competitionEntry);
    $submittedForm = $competitionEntry;

    if(file_exists($file)) {
        $fp = fopen($file, 'a');
        if($fp && 
            fputcsv($fp, $submittedForm) && 
            fclose($fp)) {
            return true;
        } 
    } else { // CREATE NEW FILE
        $fp = fopen($file, 'w');
        if($fp && 
            fputcsv($fp, $BOM) && // WRITE BOM TO FILE   
            fputcsv($fp, $fields) &&
            fputcsv($fp, $submittedForm) &&
            fclose($fp)) {     
            return true;
        } 
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

php csv excel byte-order-mark fputcsv

5
推荐指数
1
解决办法
8681
查看次数

使用fputcsv从多维数组创建CSV

我正在尝试将多维数组放入csv文件中.数组中的数据是这样的:

Array
(
 [0] => Array
    (
        [product_id] => 1111
        [name] => Alcatel One Touch Idol 2
        [keyword] => alcatel-one-touch-idol-2
        [options] => Array
            (
                [0] => Array
                    (
                        [price] => 54.0000
                    )

                [1] => Array
                    (
                        [price] => 42.0000
                    )

                [2] => Array
                    (
                        [price] => 10.0000
                    )

                [3] => Array
                    (
                        [price] => 
                    )

                [4] => Array
                    (
                        [price] => 
                    )

                [5] => Array
                    (
                        [price] => 
                    )

                [6] => Array
                    (
                        [price] => 
                    )

                [7] => Array
                    ( …
Run Code Online (Sandbox Code Playgroud)

php arrays string multidimensional-array fputcsv

5
推荐指数
1
解决办法
1万
查看次数

使用php str_getcsv函数将csv文件数据转换为数组

我有使用fputcsv创建的字符串

Date,Name,Hours 2013-01-02,"Test User",7:59 2013-01-03,"Test User",7:53 2013-01-04,"Test User",8:12 2013-01-07,"Test User",7:56 2013-01-08,"Test User",8:25 2013-01-09,"Test User",7:56 2013-01-10,"Test User",8:10 2013-01-11,"Test User",7:53 2013-01-14,"Test User",7:54 2013-01-15,"Test User",0:34 2013-04-01,"Test User",5:51 2013-04-02,"Test User",8:50 2013-04-03,"Test User",7:25 2013-04-04,"Test User",8:3 2013-04-05,"Test User","10:42:52[Not punch out]" ,Total,103:1
Run Code Online (Sandbox Code Playgroud)

当正确的标题(标题('Content-type:application/csv');标题('Content-Disposition:attachment; filename ="'.$ filename.'"');)被设置时,它会给出正确的csv文件.

使用php str_getcsv将csv文件数据转换为数组

但是我想再次将这个字符串转换为数组格式,所以我尝试将上面的字符串传递给str_getcsv但是得到像这样的数组

Array
(
    [0] => Date
    [1] => Name
    [2] => Hours
2013-01-02
    [3] => "Allen Herrera"
    [4] => 7:59
2013-01-03
    [5] => "Allen Herrera"
    [6] => 7:53
2013-01-04
    [7] => "Allen Herrera"
    [8] => 8:12
2013-01-07 …
Run Code Online (Sandbox Code Playgroud)

php arrays loops fgetcsv fputcsv

4
推荐指数
1
解决办法
1万
查看次数

fputcsv在.csv开头插入空行

<?php

$filename="backup_".date('m/d/Y', time()).".csv";

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');

$q=mysqli_query($conn,"SELECT * FROM visitordb");
$file = fopen('php://output','w');
if(mysqli_num_rows($q)>0) {
    while($res = $q->fetch_assoc()) {
        $datas = $res["sno"].','.$res["UDID"].','.$res["taggnumber"].','.$res["name"].','.$res["designation"].','.$res["company"].','.$res["email"];
        fputcsv($file, explode(',', $datas));
    }
} else {

}

fclose($file);
}
Run Code Online (Sandbox Code Playgroud)

在ms excel中查看时,以上代码在.csv文件的开头生成空行。.csv文件还可以在页面中生成任何html代码。

php fputcsv

4
推荐指数
1
解决办法
6681
查看次数

在array_keys中跳过提交按钮

我有一个PHP例程来处理表单并将值输出到CSV文件.我正在使用array_keys()创建标题行(如果有的话,跳过).一切都很完美,除了最后的标题术语是"提交",因为当然,我的表单包含一个提交按钮.所以数据最终看起来像这样:

name,email,cell,dob,study,submit
"Temp One",fred@gmail.com,646-325-1111,1995-03-31,8,Submit
"Temp Two",tom@gmail.com,646-325-2222,1995-03-31,4,Submit
Run Code Online (Sandbox Code Playgroud)

如何从标题和数据中省略提交按钮?

这是我的代码:

if(isset($_POST['submit'])) {
    $data = array_values($_POST); // get only values
    $headers = array_keys($_POST); // keys are headers 
    if( $fp = fopen('data.csv','a+')) {
        $line = fgets($fp);
        if(!$line == $headers) {
                fputcsv($fp, $headers);
                fputcsv($fp, $data);
        }
        else
        {
            fputcsv($fp, $data);
        }
        fclose($fp);
        header('Location: thanks.php'); 
    }
}
Run Code Online (Sandbox Code Playgroud)

php fputcsv

4
推荐指数
1
解决办法
546
查看次数

如何在不覆盖CSV文件的情况下将行添加到CSV文件中

$file = fopen("contacts.csv","w");
foreach(array_unique($matches[0]) as $email) {
    fputcsv($file,explode(',',$email));
}
fclose($file);
Run Code Online (Sandbox Code Playgroud)

上面的代码生成一个CSV文件.如何从最后记录的行更新CSV而不从头开始覆盖?

php csv fputcsv

4
推荐指数
1
解决办法
2133
查看次数

在php中写入csv文件时开头有空行

我正在尝试从数组写入 csv 文件,作为 csv 文件的标题

$csv_fields[] = 'produto_quest';
$csv_fields[] = 'produto_quest1';
$csv_fields[] = 'comentario_aspecto_atm';
$csv_fields[] = 'aspecto_geral_int';
$csv_fields[] = 'organizacao_espaco';

$f = fopen('php://memory', 'w+');
fputcsv($f, $csv_fields, ";");

foreach ($relat as $fields) { // load from MySQL as a multidimensional array
    foreach($fields as $key => &$value1) {
        $value1 = iconv("UTF-8", "", $value1);
    }
    fputcsv($f, $fields, ";");
}
fseek($f, 0);
fpassthru($f);
fclose($f);
Run Code Online (Sandbox Code Playgroud)

除了文件开头的隐藏字符外,所有文件都是正确的。如果我用记事本打开文件,它会正确显示,但在 Excel 中,开头有一个空行。谁能帮我?

php csv fputcsv

3
推荐指数
2
解决办法
8655
查看次数

使用PHP将MySQL数据导出到.csv

我正在将数据导出到.csv文件中并且它工作正常,但我有一个小问题.我取name,并gender从表中,但性别我保存id在我的数据库(即1 = Male,2 = Female).我的下面的代码给了我性别的ID,我该如何解决?男性返回1,女性返回2:

$rows = mysql_query("SELECT `name`, `gender` FROM TABLE");

while ($row = mysql_fetch_assoc($rows)) {
    fputcsv($output, $row);
}
Run Code Online (Sandbox Code Playgroud)

php mysql fputcsv export-to-csv

3
推荐指数
1
解决办法
1万
查看次数

PHP - 按列将数组转为 CSV

问题:我有一个关联数组,其中所有键代表 csv 标题,每个 $key => 数组中的值代表该列中的项目。

研究:据我所知,fputcsv喜欢逐行输入,但这种基于列的数组使事情变得复杂。我还没有找到任何可以完成此任务的功能。

例子:

Array(
    ['fruits'] => Array(
        [0] => 'apples',
        [1] => 'oranges',
        [2] => 'bananas'
    ),
    ['meats'] => Array(
        [0] => 'porkchop',
        [1] => 'chicken',
        [2] => 'salami',
        [3] => 'rabbit'
    ),
)
Run Code Online (Sandbox Code Playgroud)

需要成为:

fruits,meats
apples,porkchop
oranges,chicken
bananas,salami
,rabbit
Run Code Online (Sandbox Code Playgroud)

为什么很难:

您需要知道形成空白点的最大行数。

php csv arrays fputcsv

3
推荐指数
1
解决办法
4811
查看次数