SplFileObject::getCsvControl

(PHP 5 >= 5.2.0)

SplFileObject::getCsvControlGet the delimiter and enclosure character for CSV

Description

public array SplFileObject::getCsvControl ( void )

Gets the delimiter and enclosure character used for parsing CSV fields.

Parameters

This function has no parameters.

Return Values

Returns an indexed array containing the delimiter and enclosure character.

Examples

Example #1 SplFileObject::getCsvControl() example

<?php
$file 
= new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

The above example will output something similar to:

Array
(
    [0] => ,
    [1] => "
)

See Also

Коментарии

Автор:
Seems that this function always returns the same delimiter.

<?php
file_put_contents
("A;B;C;D\n0;0;0;0""test.txt");

$file = new SplFileObject("test.txt"); 
var_dump($file->getCsvControl());
?>

array(2) {
  [0]=>
  string(1) ","
  [1]=>
  string(1) """
}
2013-09-11 17:07:20
http://php5.kiev.ua/manual/ru/splfileobject.getcsvcontrol.html
Note that this function does not magically guess the CSV control from a given file, rather it returns what has been priorly set with SplFileObject::setCsvControl().
2015-02-06 19:47:44
http://php5.kiev.ua/manual/ru/splfileobject.getcsvcontrol.html
Given an absolute path to a CSV or any text file and a list of possible delimiters and assuming lines are up to 4096 characters long, I use

<?php 
function guess_delimiter($file$delimiters=[',',';']) 
{
 
$h fopen($file,'r');
   
$count = [];
    foreach (
$delimiters as $del) {
     
$count[$del] = 0;
      while ((
$bufer fgets($h4096)) !== false) {
       
$count[$del]+=substr_count($bufer$del);
      }
     
rewind($h);
    }
   
fclose($h);
    return 
array_search(max($count), $count);
}
2021-10-14 20:31:27
http://php5.kiev.ua/manual/ru/splfileobject.getcsvcontrol.html

    Поддержать сайт на родительском проекте КГБ