SplFileObject::__construct
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::__construct — Construct a new file object
说明
string
$filename
,string
$mode
= "r",bool
$useIncludePath
= false
,?resource
$context
= null
)
Construct a new file object.
参数
-
filename
-
The file to read.
小技巧如已启用fopen 包装器,在此函数中, URL 可作为文件名。关于如何指定文件名详见 fopen()。各种 wapper 的不同功能请参见 支持的协议和封装协议,注意其用法及其可提供的预定义变量。
-
mode
-
The mode in which to open the file. See fopen() for a list of allowed modes.
-
useIncludePath
-
Whether to search in the include_path for
filename
. -
context
-
A valid context resource created with stream_context_create().
错误/异常
Throws a RuntimeException if the filename
cannot be opened.
Throws a LogicException if the filename
is a directory.
范例
示例 #1 SplFileObject::__construct() example
This example opens the current file and iterates over its contents line by line.
<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
echo "Line $line_num is $line";
}
?>
以上例程的输出类似于:
Line 0 is <?php Line 1 is $file = new SplFileObject(__FILE__); Line 2 is foreach ($file as $line_num => $line) { Line 3 is echo "Line $line_num is $line"; Line 4 is } Line 5 is ?>

User Contributed Notes 2 notes
(PHP >= 5.3) If filename is a directory, a LogicException will be thrown: "Cannot use SplFileObject with directories"
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.
备份地址:http://www.lvesu.com/blog/php/splfileobject.construct.php