SplFileObject::__construct()
(PHP 5 >= 5.1.0, PHP 7)
Construct a new file object
说明
FALSE
[,resource $context]]])Construct a new file object.
参数
- $filename
The file to read.
Tip如已启用fopen 包装器,在此函数中, URL 可作为文件名。关于如何指定文件名详见fopen()。各种wapper 的不同功能请参见支持的协议和封装协议,注意其用法及其可提供的预定义变量。
- $open_mode
The mode in which to open the file. See fopen() for a list of allowed modes.
- $use_include_path
Whether to search in the include_path for$filename.
- $context
A valid context resource created with stream_context_create().
返回值
没有返回值。
错误/异常
Throws a RuntimeException if the$filenamecannot be opened.
Throws a LogicException if the$filenameis a directory.
范例
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 ?>
参见
- SplFileInfo::openFile() Gets an SplFileObject object for the file
fopen()
打开文件或者 URL
(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.