SplFileObject::__construct

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

SplFileObject::__constructConstruye un nuevo objeto de fichero

Descripción

public SplFileObject::__construct(
    string $filename,
    string $mode = "r",
    bool $useIncludePath = false,
    ?resource $context = null
)

Construye un nuevo objeto de fichero.

Parámetros

filename

El fichero a leer.

Sugerencia

Puede utilizar una URL como nombre de archivo con esta función, si el gestor fopen ha sido activado. Véase fopen() para más detalles sobre cómo especificar el nombre del archivo. Consulte Protocolos y Envolturas soportados para más información sobre las capacidades de los diferentes gestores, las notas sobre su uso, así como la información sobre las variables predefinidas que proporcionan.

mode

El modo en el que abrir el fichero. Véase fopen() para una lista de los modos permitidos.

useIncludePath

Si se va a buscar filename en el include_path.

context

Un contexto válido creado con stream_context_create().

Errores/Excepciones

Lanza una RuntimeException si filename no se puede abrir.

Lanza una LogicException si filename es un directorio.

Ejemplos

Ejemplo #1 Ejemplo de SplFileObject::__construct()

Este ejemplo abre el fichero actual y recorre su contenido, línea por línea.

<?php
$fichero
= new SplFileObject(__FILE__);
foreach (
$fichero as $num_línea => $línea) {
echo
"La línea $num_línea es $línea";
}
?>

Resultado del ejemplo anterior es similar a :

La línea 0 es <?php
La línea 1 es $fichero = new SplFileObject(__FILE__);
La línea 2 es foreach ($fichero as $num_línea => $línea) {
La línea 3 es     echo "La línea $num_línea es $línea";
La línea 4 es }
La línea 5 es ?>

Ver también

add a note

User Contributed Notes 1 note

up
0
KEINOS at blog.keinos.com
8 years ago
When using URL as a filename, such as "http://..." or "php://stdin", and also have the fopen wappers on, and you get a 'RuntimeException' error, try using "NoRewindIterator" class to a SplFileObject instance.

<?php
$url
= 'http://sample.com/data.csv';
$file = new NoRewindIterator( new SplFileObject( $url ) );
foreach (
$file as $line_num => $line) {
echo
"Line $line_num is $line";
}
?>

While opening a file, a rewind method will be called, but these URL iterators cannot be rewind, so you'll get a "Fatal error: Uncaught exception 'RuntimeException' with message 'Cannot rewind file ...'" error.
To Top