PHP 8.1.28 Released!

SplFileObject::__construct

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

SplFileObject::__constructConstruit un nouvel objet fichier

Description

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

Construit un nouvel objet fichier.

Liste de paramètres

filename

Le fichier à lire.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur les variables prédéfinies qu'elles fournissent.

mode

Le mode utilisé pour ouvrir le fichier. Voir la fonction fopen() pour une liste de tous les modes disponibles.

useIncludePath

Si l'on doit chercher dans l'include_path le fichier filename.

context

Une ressource de contexte valide créée avec la fonction stream_context_create().

Erreurs / Exceptions

Lance une exception RuntimeException si le fichier filename n'a pu être ouvert.

Lance une exception LogicException si filename est un dossier.

Exemples

Exemple #1 Exemple avec SplFileObject::__construct()

Cet exemple ouvre le fichier courant et parcourt son contenu ligne par ligne.

<?php
$file
= new SplFileObject(__FILE__);
foreach (
$file as $line_num => $line) {
echo
"La ligne n°$line_num est : $line";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

La ligne n°0 est : <?php
La ligne n°1 est : $file = new SplFileObject(__FILE__);
La ligne n°2 est : foreach ($file as $line_num => $line) {
La ligne n°3 est :     echo "Line $line_num is $line";
La ligne n°4 est : }
La ligne n°5 est : ?>

Voir aussi

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