php - 我的 array to csv 函数是否正确?

标签 php

PHP 有 a function for converting CSV strings to PHP arrays,但不是反之亦然的功能,所以我写了一个:

function echocsv(array $arr, $quo = '"', $sep = ',') {
    $escape = $quo . $quo;
    foreach($arr as &$val) {
        if(strpos($val, $quo) !== false) {
            $val = $quo . str_replace($quo, $escape, $val) . $quo;
        }
    }
    echo implode($sep, $arr) . PHP_EOL;
}

有什么我忽略的吗?来自 wikipedia它基本上说引号应该用另一个引号转义,这就是它的全部内容。 .CSV 文件需要能够在 MS Excel 中打开。

我的原始测试似乎表明它在工作。

(我回显它而不是返回一个字符串,因为我要将它直接传输到浏览器)

最佳答案

$stdout = fopen('php://output','w'); // 'stdout' is for CLI, 'output' is for Browser
fputcsv($stdout, array('val,ue1','val"ue2','value3','etc'));
fflush($stdout); // flush for fun :)
fclose($stdout);

^ 这会将 CSV 文件输出到浏览器

关于php - 我的 array to csv 函数是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8513779/

相关文章:

php - 无法在查询中设置限制值

php - 将多个数组(不同长度)的列值压入一个平面数组

php - 带有匹配和过滤的Elasticsearch查询

php - 这些值未发布到数据库

PHP - 使用 header 调用 SoapClient,并返回 fatal error

php - Firefox - Chrome 编码元音变音时的区别

java - 函数名称约定(任何类型的 PL)

php - Laravel eager load 功能限制

php - 我需要使用哪些 Web 技术来创建类似 Windows 窗体的界面?

php - 仅限使用一张优惠券,删除 Woocommerce 中之前使用的其他优惠券