Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用setcsvcontrol()_Php_Csv_Delimiter - Fatal编程技术网

Php 如何使用setcsvcontrol()

Php 如何使用setcsvcontrol(),php,csv,delimiter,Php,Csv,Delimiter,早上好 我正在开发一个创建csv文件的脚本。我的问题是csv文件的分隔符,我需要使用“;” 我读到我必须使用“setcsvcontrol()”,但我正在尝试使用它,但没有任何结果 这是我脚本的一部分: $create = fopen($fecha."p.csv", "a"); $file = new SplFileObject($fecha."p.csv"); $file->setFlags(SplFileObject::READ_CSV); $file->setCsvControl

早上好

我正在开发一个创建csv文件的脚本。我的问题是csv文件的分隔符,我需要使用“;”

我读到我必须使用“setcsvcontrol()”,但我正在尝试使用它,但没有任何结果

这是我脚本的一部分:

$create = fopen($fecha."p.csv", "a");
$file = new SplFileObject($fecha."p.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl(';');

foreach($cadena as $fields){    

    fputcsv($create,$fields);
}

谢谢。

您没有将分隔符传递给
fputcsv

fputcsv($create,$fields, ";");
您还可以安全地删除

$file = new SplFileObject($fecha."p.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl(';');
如果必须使用
SplFileObject
,请将代码更改为

$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::WRITE_CSV);
$file->setCsvControl(';');
foreach ($rows as $row) {
    $file->fputcsv($row);
}

您没有将分隔符传递给
fputcsv

fputcsv($create,$fields, ";");
您还可以安全地删除

$file = new SplFileObject($fecha."p.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl(';');
如果必须使用
SplFileObject
,请将代码更改为

$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::WRITE_CSV);
$file->setCsvControl(';');
foreach ($rows as $row) {
    $file->fputcsv($row);
}
仅影响调用它的对象,即您案例中的
$file
对象。它不会影响从
fopen
获得的
$create
对象,即使这两个对象在同一个文件上运行

使用
$create
写入
$create
对象,将
$create
作为第一个参数传递,将所需的分隔符和附件作为第三个和第四个参数传递,或者调用。在后一种情况下,您必须使用合适的
$open\u模式

作为可写模式,只影响调用它的对象,即案例中的
$file
对象。它不会影响从
fopen
获得的
$create
对象,即使这两个对象在同一个文件上运行


使用
$create
写入
$create
对象,将
$create
作为第一个参数传递,将所需的分隔符和附件作为第三个和第四个参数传递,或者调用。在后一种情况下,您必须使用合适的
$open\u模式

作为可写模式,没有
WRITE\u CSV
常量。没有
WRITE\u CSV
常量。