Document loading
Because CSV documents come in different forms, we use named constructors to offer several ways to load them.
Loading from a string
public static AbstractCsv::fromString(string $content = ''): self
Create a new object from a given string.
use League\Csv\Reader;
use League\Csv\Writer;
$reader = Reader::fromString('john,doe,john.doe@example.com');
$writer = Writer::fromString('john,doe,john.doe@example.com');
Loading from a file or a stream
public static AbstractCsv::from(
SplFileInfo|SplFileObject|resource|string $filename,
string $mode = 'r+',
resource $context = null
): self
If an string or a SplFileInfo object is given as the $filename argument, a new instance
is created à la fopen and the $mode and the $context parameters are taking into account.
Otherwise, when a stream resource or an SplFileObject instance is given both arguments are
ignored.
use League\Csv\Reader;
use League\Csv\Writer;
$reader = Reader::from('/path/to/your/csv/file.csv', 'r');
$writer = Writer::from('/path/to/your/csv/file.csv', 'w');
$reader = Reader::from(fopen('/path/to/the/file.csv', 'r+'));
$writer = Writer::from(tmpfile());
$reader = Reader::from(new SplFileInfo('/path/to/your/csv/file.csv'));
$writer = Writer::from(new SplTempFileObject());
Legacy API
Loading from a string
public static AbstractCsv::createFromString(string $content = ''): self
Creates a new object from a given string.
use League\Csv\Reader;
use League\Csv\Writer;
$reader = Reader::createFromString('john,doe,john.doe@example.com');
$writer = Writer::createFromString('john,doe,john.doe@example.com');
Loading from a file path
public static AbstractCsv::createFromPath(
string $path,
string $open_mode = 'r+',
resource $context = null
): self
Creates a new object à la fopen.
use League\Csv\Reader;
use League\Csv\Writer;
$reader = Reader::createFromPath('/path/to/your/csv/file.csv', 'r');
$writer = Writer::createFromPath('/path/to/your/csv/file.csv', 'w');
Loading from a resource stream
public static AbstractCsv::createFromStream(resource $stream): self
Creates a new object from a stream resource.
use League\Csv\Reader;
use League\Csv\Writer;
$reader = Reader::createFromStream(fopen('/path/to/the/file.csv', 'r+'));
$writer = Writer::createFromStream(tmpfile());
Loading from a SplFileObject object
public static AbstractCsv::createFromFileObject(SplFileObject $file): self
Creates a new object from a SplFileObject object.
use League\Csv\Reader;
use League\Csv\Writer;
$reader = Reader::createFromFileObject(new SplFileObject('/path/to/your/csv/file.csv'));
$writer = Writer::createFromFileObject(new SplTempFileObject());
Accessing the CSV document path
public AbstractCsv::getPathname(): string
Once instantiated, the getPathname method returns the pathname of the underlying document.
use League\Csv\Reader;
use League\Csv\Writer;
Reader::from(new SplFileObject('/path/to/your/csv/file.csv'))->getPathname();
//returns '/path/to/your/csv/file.csv'
Writer::from(new SplTempFileObject())->getPathname();
//returns php://temp