PHP 8.5.0 Alpha 1 available for testing

SplFileObject::getCsvControl

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SplFileObject::getCsvControlRecupera las opciones para CSV

Descripción

public SplFileObject::getCsvControl(): array

Recupera el separador, carácter de escape así como el carácter utilizado para rodear los campos durante un análisis CSV de los datos.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve un array indexado que contiene el carácter utilizado para delimitar los campos así como el utilizado para rodearlos y el carácter de escape.

Historial de cambios

Versión Descripción
7.4.0 El carácter de espaciado puede ser ahora una cadena vacía.
7.0.10 Se añade el carácter de escape al array devuelto.

Ejemplos

Ejemplo #1 Ejemplo con SplFileObject::getCsvControl()

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

El resultado del ejemplo sería algo similar a:

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

Ver también

add a note

User Contributed Notes 3 notes

up
27
greg dot bowler at g105b dot com
10 years ago
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().
up
1
faure dot daniel dot 57 at gmail dot com
3 years ago
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($h, 4096)) !== false) {
$count[$del]+=substr_count($bufer, $del);
}
rewind($h);
}
fclose($h);
return
array_search(max($count), $count);
}
up
1
Anonymous
11 years ago
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) """
}
To Top