CakeFest 2024: The Official CakePHP Conference

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

Se puede emplear un URL como nombre de fichero con esta función si las envolturas de fopen han sido activadas. Véase fopen() para más información de cómo especificar el nombre de fichero. Véanse las Protocolos y Envolturas soportados; continen enlaces con información sobre las diferentes capacidades que tienen las envolturas, notas sobre su empleo, e información de cualquier variable predefinida que podría proporcionarse.

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";
}
?>

El resultado del ejemplo sería algo 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 2 notes

up
0
KEINOS at blog.keinos.com
6 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.
up
-3
majna
9 years ago
(PHP >= 5.3) If filename is a directory, a LogicException will be thrown: "Cannot use SplFileObject with directories"
To Top