标签: fputcsv

fputcsv - 只有一列

我想将我的mysql数据库的部分(和不同的排列)保存在CSV文件中.为此,我写了这段代码:

$headerDisplayed = false;
foreach ($arr as &$currName)
{
    $result2 = mysql_query("SELECT * FROM Experiment Where Person='$currName'"); 
    $i = 1;
    while ($row2 = mysql_fetch_array($result2)) 
    {
        $list['Name'] = $currName;
        $list['Studie'] = $row2['Studie']; 
        if(strcmp($row2['Antwort'],$row2['Korrekt']) == 0)
        {
            $list["A $i"] = '0';
        }
        else
        {
            $list["A $i"] = '1';
        }

        $i++;
    }

    if ( !$headerDisplayed ) {
        // Use the keys from $data as the titles
        fputcsv($fp, array_keys($list));
        $headerDisplayed = true;
    }

    fputcsv($fp, $list);
}

fclose($fp);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不是我想要的.我的计划是$list(eg $list["A 1"]$list["A …

php mysql csv arrays fputcsv

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

写入模式下 fopen 的文件权限 - PHP

我有一个 PHP 脚本,可以将一些行写入 CSV 文件:

$fp = fopen($csv, 'w');
Run Code Online (Sandbox Code Playgroud)

我使用的模式,“W”,这样,如果不存在,它会创建的文件,但该文件将自动给予644个权限,即使我把777整个的/ var / www / html等/目录(不是一个好想法,但适合测试)。

如何写入文件并事先授予它权限?或者有没有更好的方法来授予写权限?

php fopen fputcsv

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

fputcsv将HTML代码插入到csv文件中

我有使用fputcsv编写csv文件的问题.它将页面html也放入csv文件中.我的代码有什么问题?

//Excel header
header("Content-Disposition: attachment; filename=\"Delivery_Reports.csv\";" );
header("Content-type: application/vnd.ms-excel");
$out = fopen("php://output", 'w');
$flag = false;
// $result = mysql_query("SELECT * FROM senderids ") or die('Query failed!');
//$sel="SELECT number as MobileNumber ,snum as Sender , msg as Subject ,crdate as Date ,status FROM savemsg WHERE userID='".$_SESSION['id']."' ".$str." ORDER BY sn DESC ";
$result = mysql_query("SELECT `count`, `dnd`, `credit`, `sender_id`, `to`, `message`, `status` FROM `reports` WHERE `unq_id` = '$dlr_id'");
while(false !== ($row = mysql_fetch_assoc($result))){
    if(!$flag){
        $list = array(
            "Total"=>"Total",
            "DND"=>"DND",
            "Credits"=>"Credits", …
Run Code Online (Sandbox Code Playgroud)

html php csv excel fputcsv

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

php fputcsv在CSV中使用分号分隔符

我编写了一个代码,我从DB中检索数据并使用函数'fputcsv'将它们填充到CSV中

我把以下内容放在首位:

$file = fopen("internal/customer_info.csv","w");
Run Code Online (Sandbox Code Playgroud)

然后我检索数据并将它们放在变量中,运行函数:

$customerInfo = $first_name.";".$last_name.";".$address1.";".$address2.";".$postcode.";".$city.";".$country.";".$email;
fputcsv($file,explode(';',$customerInfo));
Run Code Online (Sandbox Code Playgroud)

最后,我关闭了文件.

我的问题是:我怎么能用分号分隔符?如你所见,我有分号,但CSV输出没有.它显示了一个逗号.

为什么?谁能帮我?

php csv arrays fputcsv

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

PHP fputcsv输出双记录

我正在使用这个fputcsv代码:

$result = mysql_query('SELECT * FROM `mash`');
if (!$result) die('Couldn\'t fetch records');
$fp = fopen('testCSV.csv', 'w');
if ($fp && $result) {
    while ($row = mysql_fetch_array($result)) {
        fputcsv($fp, array_values($row));
    }
    die;
}
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

它输出的CSV很棒,但每个mysql列有两列(所以一切都加倍)

有谁能看出为什么会这样?

php mysql csv fputcsv

2
推荐指数
1
解决办法
3976
查看次数

fopen() / fputcsv():错误

我正在寻找一种即时导出到 csv 的方法并遇到了这个问题。

    $list = array (
                   array('aaa', 'bbb', 'ccc', 'dddd'),
                   array('123', '456', '789'),
                   array('"aaa"', '"bbb"')
                   );
    $fp = fopen('path_to_file/file.csv', 'w');

    foreach ($list as $fields) {
        fputcsv($fp, $fields);
    }

    fclose($fp);
Run Code Online (Sandbox Code Playgroud)

它只是取自 php.net 页面的基本代码。无论如何,在将它用于我自己的需要之前,我坚持尝试使用它。但我不断收到以下错误。

PHP Warning:  fopen(path_to_file): failed to open stream
fputcsv() expects parameter 1 to be resource, boolean given
fclose() expects parameter 1 to be resource, boolean given
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会出现 fopen() 错误,因为我希望它无论如何都可以动态创建一个新文件,无论如何我认为它已经完成了?

假设这是一个文件权限错误是否安全?

此外,由于我使用了 php.net 页面中的确切代码,因此我假设由于 fopen() 问题而显示其他错误。

编辑。

看来我发布更多信息可能会更好。

涉及的班级。

 class transData{
var $connection;
var $date;
var $data;

function __construct($date){ …
Run Code Online (Sandbox Code Playgroud)

php fopen file-permissions fputcsv

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

fputcsv()为每个条目添加引号?

使用此代码,我创建了CSV导出文件:

foreach ($data_for_export as $row) {
    $data = [];
    array_push($data, $row->product_id);
    array_push($data, $row->product_name);
    array_push($data, $row->product_code);
    array_push($data, $row->text);

    fputcsv($file, $data);
}

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

示例输出是:

2131,"Toys set 35", TSSET35, "Lorem ipsum dolor sit amet"
Run Code Online (Sandbox Code Playgroud)

我尝试过:

    preg_replace("/([a-z0-9]+)/i", '"$1"', $row->product_id)

    '"'.$row->product_id.'"'
Run Code Online (Sandbox Code Playgroud)

使用"preg_replace",我会得到更多的引号,然后需要...

我需要所有出口物品的报价,我该怎么做?

php csv fputcsv export-to-csv

2
推荐指数
1
解决办法
3786
查看次数

使用 fputcsv 时无法删除双引号

我创建了一个脚本,将一堆 MySQL 表导出到 csv。脚本工作正常,只是我需要在将每一行放入 CSv 文件之前删除双引号。

我正在使用 str_replace,当我需要替换 | 的任何实例时,它可以工作。但由于某种原因,它不适用于双引号。我想我一定在这里遗漏了一些明显的东西。

require_once 'mysqliconn.php';

$mysql_tables = array("OutputApplicationsView", "OutputComponentsView", "OutputDevicesView", "OutputDisksView", "OutputInstalledSoftwareView", "OutputModulesView", "OutputOraclePTVView", "ScopeListView");

    foreach ($mysql_tables as $mysql_table) {

        echo "<br> Exporting $mysql_table to CSV file. Please wait.</br>";

        $sql = "SELECT * FROM ". $mysql_table . " LIMIT 10";

        $stmt = $myconn->prepare($sql);
        if($stmt === false) {trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $myconn->error, E_USER_ERROR);}

        $execute = $stmt->execute();
        if($execute === false) {trigger_error('Wrong SQL: ' . $sql . ' Error: ' …
Run Code Online (Sandbox Code Playgroud)

php quotes double str-replace fputcsv

2
推荐指数
1
解决办法
4489
查看次数

通过PHP生成管道定界文件

我的代码使用PHP的fputcsv函数生成了一个txt文件。

对于定界符,我正在尝试使用“ |”

$query = mysql_query("SELECT email, emailSource FROM session WHERE is_complete='1' ORDER by sessionid ASC")

$filename= 'here.txt';

$fp = fopen( $filename,'w');


fputcsv($fp, array('Email address', 'Email Source'));

if(mysql_numrows($query) > 0) {

    while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
            fputcsv($fp, array_values($row));
    }
}


fclose($fp);
$contents = file_get_contents($filename);
$contents = str_replace(",", "|", $contents);
file_put_contents($filename, $contents);
Run Code Online (Sandbox Code Playgroud)

我得到的结果全都放在一行上,而不是在单独的一行上显示值,并且标头周围也有“”。

"Email address"|"Email Source"|blah@blah.com|hi|
Run Code Online (Sandbox Code Playgroud)

代替这个:

Email address|Email Source|

blah@blah.com|hi|
Run Code Online (Sandbox Code Playgroud)

请有人能告诉我我在做什么错。是因为我正在使用fputcsv并保存到txt文件吗?

php csv delimited-text fputcsv

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

使用 fputcsv() / fgetcsv() 写入 csv 时数据出现乱码

PHP 中的 fputcsv() 和 fgetcsv() 似乎存在编码问题或错误。

以下 PHP 代码:

$row_before = ['A', json_encode(['a', '\\', 'b']), 'B'];

print "\nBEFORE:\n";
var_export($row_before);
print "\n";

$fh = fopen($file = 'php://temp', 'rb+');

fputcsv($fh, $row_before);

rewind($fh);

$row_after = fgetcsv($fh);

print "\nAFTER:\n";
var_export($row_after);
print "\n\n";

fclose($fh);
Run Code Online (Sandbox Code Playgroud)

给我这个输出:

BEFORE:
array (
  0 => 'A',
  1 => '["a","\\\\","b"]',
  2 => 'B',
)

AFTER:
array (
  0 => 'A',
  1 => '["a","\\\\',
  2 => 'b""]"',
  3 => 'B',
)
Run Code Online (Sandbox Code Playgroud)

很明显,数据在途中被损坏。最初该行只有 3 个单元格,后来该行有 4 个单元格。由于反斜杠也用作转义字符,中间的单元格被分割。

另请参阅 https://3v4l.org/nc1oE 或者此处,使用分隔符、封装、escape_char 的显式值: https: //3v4l.org/Svt7m …

php csv escaping fgetcsv fputcsv

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