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::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::createFromFileObject(new SplFileObject('/path/to/your/csv/file.csv'))->getPathname();
//returns '/path/to/your/csv/file.csv'
Writer::createFromFileObject(new SplTempFileObject())->getPathname();
//returns php://temp