• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SplFileObject::__construct()

    (PHP 5 >= 5.1.0, PHP 7)

    Construct a new file object

    说明

    publicSplFileObject::__construct(string $filename[,string $open_mode= "r"[,bool $use_include_path= 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.