SplFileObject Class Reference
[Internal classes]

Object representation for any stream. More...

Inheritance diagram for SplFileObject:

Inheritance graph
{SplFileInfo\n||+ __construct()\l+ __toString()\l+ getATime()\l+ getCTime()\l+ getFileInfo()\l+ getFilename()\l+ getGroup()\l+ getInode()\l+ getLinkTarget()\l+ getMTime()\l+ getOwner()\l+ getPath()\l+ getPathInfo()\l+ getPathname()\l+ getPerms()\l+ getRealPath()\l+ getSize()\l+ getType()\l+ isDir()\l+ isExecutable()\l+ isFile()\l+ isLink()\l+ isReadable()\l+ isWritable()\l+ openFile()\l+ setFileClass()\l+ setInfoClass()\l}{RecursiveIterator\n||+ getChildren()\l+ hasChildren()\l}{Iterator\n||+ current()\l+ key()\l+ next()\l+ rewind()\l+ valid()\l}{SeekableIterator\n||+ seek()\l}{Traversable\n||}
[legend]
Collaboration diagram for SplFileObject:

Collaboration graph
{SplFileInfo\n||+ __construct()\l+ __toString()\l+ getATime()\l+ getCTime()\l+ getFileInfo()\l+ getFilename()\l+ getGroup()\l+ getInode()\l+ getLinkTarget()\l+ getMTime()\l+ getOwner()\l+ getPath()\l+ getPathInfo()\l+ getPathname()\l+ getPerms()\l+ getRealPath()\l+ getSize()\l+ getType()\l+ isDir()\l+ isExecutable()\l+ isFile()\l+ isLink()\l+ isReadable()\l+ isWritable()\l+ openFile()\l+ setFileClass()\l+ setInfoClass()\l}{RecursiveIterator\n||+ getChildren()\l+ hasChildren()\l}{Iterator\n||+ current()\l+ key()\l+ next()\l+ rewind()\l+ valid()\l}{SeekableIterator\n||+ seek()\l}{Traversable\n||}
[legend]
List of all members.

Public Member Functions

 __construct ($file_name, $open_mode= 'r', $use_include_path=false, $context=NULL)
 __toString ()
 current ()
 eof ()
 fflush ()
 fgetc ()
 fgetcsv ($delimiter=NULL, $enclosure=NULL)
 fgets ()
 fgetss ($allowable_tags=NULL)
 flock ($operation, &$wouldblock)
 fpassthru ()
 fscanf ($format)
 fseek ($pos, $whence=SEEK_SET)
 fstat ()
 ftell ()
 ftruncate ($size)
 fwrite ($str, $length=NULL)
 getATime ()
 getChildren ()
 getCsvControl ($delimiter= ',', $enclosure= '"')
 getCTime ()
 getCurrentLine ()
 getFileInfo (string class_name=NULL)
 getFilename ()
 getFlags ()
 getGroup ()
 getInode ()
 getLinkTarget ()
 getMaxLineLen ()
 getMTime ()
 getOwner ()
 getPath ()
 getPathInfo (string class_name=NULL)
 getPathname ()
 getPerms ()
 getRealPath ()
 getSize ()
 getType ()
 hasChildren ()
 isDir ()
 isExecutable ()
 isFile ()
 isLink ()
 isReadable ()
 isWritable ()
 key ()
 next ()
 openFile ($mode= 'r', $use_include_path=false, $context=NULL)
 rewind ()
 seek ($line_pos)
 setCsvControl ($delimiter= ';', $enclosure= '"')
 setFileClass (string class_name="SplFileObject")
 setFlags ($flags)
 setInfoClass (string class_name="SplFileInfo")
 setMaxLineLen ($max_len)
 valid ()

Public Attributes

const DROP_NEW_LINE = 0x00000001

Private Member Functions

 freeLine ()
 readLine ()

Private Attributes

 $delimiter = ','
 $enclosure = '"'
 $flags = 0
 $fname
 $fp
 $line = NULL
 $lnum = 0
 $max_len = 0

Detailed Description

Object representation for any stream.

Author:
Marcus Boerger
Version:
1.1
Since:
PHP 5.1

Definition at line 18 of file splfileobject.inc.


Constructor & Destructor Documentation

SplFileObject::__construct ( file_name,
open_mode = 'r',
use_include_path = false,
context = NULL 
)

Constructs a new file object.

Parameters:
$file_name The name of the stream to open
$open_mode The file open mode
$use_include_path Whether to search in include paths
$context A stream context
Exceptions:
RuntimeException If file cannot be opened (e.g. insufficient access rights).

Definition at line 42 of file splfileobject.inc.

00043     {
00044         $this->fp = fopen($file_name, $open_mode, $use_include_path, $context);
00045         if (!$this->fp)
00046         {
00047             throw new RuntimeException("Cannot open file $file_name");
00048         }
00049         $this->fname = $file_name;
00050     }


Member Function Documentation

SplFileObject::__toString (  ) 

Returns:
current line

Reimplemented from SplFileInfo.

Definition at line 359 of file splfileobject.inc.

References current().

00360     {
00361         return current();
00362     }

Here is the call graph for this function:

SplFileObject::currentSplFileObject::getCurrentLineSplFileObject::eofSplFileObject::freeLineSplFileObject::readLineSplFileObject::fgets

SplFileObject::current (  ) 

Note:
Fill current line buffer if not done yet.

Returns:
line buffer

Implements Iterator.

Definition at line 284 of file splfileobject.inc.

References getCurrentLine().

Referenced by __toString().

00285     {
00286         if (is_null($this->line))
00287         {
00288             $this->line = getCurrentLine();
00289         }
00290         return $this->line;
00291     }

Here is the call graph for this function:

SplFileObject::getCurrentLineSplFileObject::eofSplFileObject::freeLineSplFileObject::readLineSplFileObject::fgets

SplFileObject::eof (  ) 

Returns:
whether the end of the stream is reached

Definition at line 55 of file splfileobject.inc.

Referenced by getCurrentLine(), readLine(), seek(), and valid().

00056     {
00057         return eof($this->fp);
00058     }

SplFileObject::fflush (  ) 

Flush current data.

Returns:
success or failure

Definition at line 127 of file splfileobject.inc.

00128     {
00129         return fflush($this->fp);
00130     }

SplFileObject::fgetc (  ) 

Returns:
next char from file

Note:
a new line character does not increase $this->lnum

Definition at line 155 of file splfileobject.inc.

References freeLine().

00156     {
00157         $this->freeLine();
00158         $c = fgetc($this->fp);
00159         if ($c == '\n') {
00160             $this->lnum++;
00161         }
00162     }

Here is the call graph for this function:

SplFileObject::freeLine

SplFileObject::fgetcsv ( delimiter = NULL,
enclosure = NULL 
)

Parameters:
delimiter character used as field separator

Parameters:
enclosure end of
Returns:
array containing read data

Definition at line 77 of file splfileobject.inc.

References $delimiter, $enclosure, and freeLine().

00078     {
00079         $this->freeLine();
00080         $this->lnum++;
00081         switch(fun_num_args())
00082         {
00083             case 0:
00084                 $delimiter = $this->delimiter;
00085             case 1:
00086                 $enclosure = $this->enclosure;
00087             default:
00088             case 2:
00089                 break;
00090         }
00091         return fgetcsv($this->fp, $this->max_len, $delimiter, $enclosure); 
00092     }

Here is the call graph for this function:

SplFileObject::freeLine

SplFileObject::fgets (  ) 

increase current line number

Returns:
next line from stream

Definition at line 63 of file splfileobject.inc.

References freeLine().

Referenced by readLine().

00064     {
00065         $this->freeLine();
00066         $this->lnum++;
00067         $buf = fgets($this->fp, $this->max_len);
00068         
00069         return $buf;
00070     }

Here is the call graph for this function:

SplFileObject::freeLine

SplFileObject::fgetss ( allowable_tags = NULL  ) 

Get a line from the file and strip HTML tags.

Parameters:
$allowable_tags tags to keep in the string

Definition at line 175 of file splfileobject.inc.

00176     {
00177         return fgetss($this->fp, $allowable_tags);
00178     }

SplFileObject::flock ( operation,
&$  wouldblock 
)

Parameters:
operation lock operation (LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB)

Return values:
$wouldblock whether the operation would block

Definition at line 118 of file splfileobject.inc.

00119     {
00120         return flock($this->fp, $operation, $wouldblock);
00121     }

SplFileObject::fpassthru (  ) 

Read and return remaining part of stream.

Returns:
size of remaining part passed through

Definition at line 167 of file splfileobject.inc.

00168     {
00169         return fpassthru($this->fp);
00170     }

SplFileObject::freeLine (  )  [private]

Free the current line buffer and increment the line counter.

Definition at line 334 of file splfileobject.inc.

Referenced by fgetc(), fgetcsv(), fgets(), fscanf(), getCurrentLine(), next(), readLine(), and rewind().

00335     {
00336         if ($this->line) {
00337             $this->line = NULL;
00338         }
00339     }

SplFileObject::fscanf ( format  ) 

Scan the next line.

Parameters:
$format string specifying format to parse

Definition at line 183 of file splfileobject.inc.

References freeLine().

00184     {
00185         $this->freeLine();
00186         $this->lnum++;
00187         return fscanf($this->fp, $format /* , ... */);
00188     }

Here is the call graph for this function:

SplFileObject::freeLine

SplFileObject::fseek ( pos,
whence = SEEK_SET 
)

Parameters:
pos new file position

Parameters:
whence seek method (SEEK_SET, SEEK_CUR, SEEK_END)
Returns:
Upon success, returns 0; otherwise, returns -1. Note that seeking past EOF is not considered an error.

Definition at line 146 of file splfileobject.inc.

00147     {
00148         return fseek($this->fp, $pos, $whence);
00149     }

SplFileObject::fstat (  ) 

Returns:
array of file stat information

Definition at line 202 of file splfileobject.inc.

00203     {
00204         return fstat($this->fp);
00205     }

SplFileObject::ftell (  ) 

Returns:
current file position

Definition at line 135 of file splfileobject.inc.

00136     {
00137         return ftell($this->fp);
00138     }

SplFileObject::ftruncate ( size  ) 

Parameters:
$size new size to truncate file to

Definition at line 210 of file splfileobject.inc.

00211     {
00212         return ftruncate($this->fp, $size);
00213     }

SplFileObject::fwrite ( str,
length = NULL 
)

Parameters:
$str to write

Parameters:
$length maximum line length to write

Definition at line 194 of file splfileobject.inc.

References $length.

00195     {
00196         return fwrite($this->fp, $length);
00197     }

SplFileInfo::getATime (  )  [inherited]

Returns:
The current entry's last access time.

Definition at line 896 of file spl.php.

00896 {}

SplFileObject::getChildren (  ) 

Returns:
false

Implements RecursiveIterator.

Definition at line 258 of file splfileobject.inc.

00259     {
00260         return NULL;
00261     }

SplFileObject::getCsvControl ( delimiter = ',',
enclosure = '"' 
)

Returns:
array(delimiter, enclosure) as used in fgetcsv

Definition at line 109 of file splfileobject.inc.

00110     {
00111         return array($this->delimiter, $this->enclosure);
00112     }

SplFileInfo::getCTime (  )  [inherited]

Returns:
The current entry's last change time.

Definition at line 904 of file spl.php.

00904 {}

SplFileObject::getCurrentLine (  ) 

Definition at line 346 of file splfileobject.inc.

References eof(), freeLine(), and readLine().

Referenced by current(), and seek().

00347     {
00348         $this->freeLine();
00349         if ($this->eof())
00350         {
00351             throw new RuntimeException("Cannot read from file " . $this->fname);
00352         }
00353         $this->readLine();
00354     }

Here is the call graph for this function:

SplFileObject::eofSplFileObject::freeLineSplFileObject::readLineSplFileObject::fgets

SplFileInfo::getFileInfo ( string  class_name = NULL  )  [inherited]

Returns:
SplFileInfo created for the file

Parameters:
class_name name of class to instantiate
See also:
SplFileInfo::setInfoClass()

Definition at line 862 of file spl.php.

00862 {}

SplFileInfo::getFilename (  )  [inherited]

Returns:
the filename only.

Definition at line 856 of file spl.php.

00856 {}  

SplFileObject::getFlags (  ) 

Returns:
current set of flags

Definition at line 226 of file splfileobject.inc.

00227     {
00228         return $this->flags;
00229     }

SplFileInfo::getGroup (  )  [inherited]

Returns:
The current entry's group name.

Definition at line 892 of file spl.php.

00892 {}

SplFileInfo::getInode (  )  [inherited]

Returns:
The current entry's inode.

Definition at line 880 of file spl.php.

00880 {}

SplFileInfo::getLinkTarget (  )  [inherited]

Returns:
target of link.

Definition at line 936 of file spl.php.

00936 {}

SplFileObject::getMaxLineLen (  ) 

Returns:
current setting for max line

Definition at line 242 of file splfileobject.inc.

00243     {
00244         return $this->max_len;
00245     }

SplFileInfo::getMTime (  )  [inherited]

Returns:
The current entry's last modification time.

Definition at line 900 of file spl.php.

00900 {}

SplFileInfo::getOwner (  )  [inherited]

Returns:
The current entry's owner name.

Definition at line 888 of file spl.php.

00888 {}

SplFileInfo::getPath (  )  [inherited]

Returns:
the path part only.

Definition at line 852 of file spl.php.

00852 {}  

SplFileInfo::getPathInfo ( string  class_name = NULL  )  [inherited]

Returns:
SplFileInfo created for the path

Parameters:
class_name name of class to instantiate
See also:
SplFileInfo::setInfoClass()

Definition at line 872 of file spl.php.

00872 {}

SplFileInfo::getPathname (  )  [inherited]

Returns:
The current entries path and file name.

Definition at line 866 of file spl.php.

00866 {}  

SplFileInfo::getPerms (  )  [inherited]

Returns:
The current entry's permissions.

Definition at line 876 of file spl.php.

00876 {}

SplFileInfo::getRealPath (  )  [inherited]

Returns:
The resolved path

Definition at line 940 of file spl.php.

00940 {}

SplFileInfo::getSize (  )  [inherited]

Returns:
The current entry's size in bytes .

Definition at line 884 of file spl.php.

00884 {}

SplFileInfo::getType (  )  [inherited]

Returns:
The current entry's file type.

Definition at line 908 of file spl.php.

00908 {}

SplFileObject::hasChildren (  ) 

Returns:
false

Implements RecursiveIterator.

Definition at line 250 of file splfileobject.inc.

00251     {
00252         return false;
00253     }

SplFileInfo::isDir (  )  [inherited]

Returns:
Whether the current entry is a directory.

Definition at line 928 of file spl.php.

00928 {}  

SplFileInfo::isExecutable (  )  [inherited]

Returns:
Whether the current entry is executable.

Definition at line 920 of file spl.php.

00920 {}

SplFileInfo::isFile (  )  [inherited]

Returns:
Whether the current entry is .

Definition at line 924 of file spl.php.

00924 {}

SplFileInfo::isLink (  )  [inherited]

Returns:
whether the current entry is a link.

Reimplemented in DirectoryIterator.

Definition at line 932 of file spl.php.

00932 {}

SplFileInfo::isReadable (  )  [inherited]

Returns:
Whether the current entry is readable.

Definition at line 916 of file spl.php.

00916 {}

SplFileInfo::isWritable (  )  [inherited]

Returns:
Whether the current entry is writeable.

Definition at line 912 of file spl.php.

00912 {}

SplFileObject::key (  ) 

Returns:
line number

Note:
fgetc() will increase the line number when reaing a new line char. This has the effect key() called on a read a new line will already return the increased line number.

Line counting works as long as you only read the file and do not use fseek().

Implements Iterator.

Definition at line 301 of file splfileobject.inc.

00302     {
00303         return $this->lnum;
00304     }

SplFileObject::next (  ) 

Invalidate current line buffer.

Implements Iterator.

Definition at line 308 of file splfileobject.inc.

References freeLine().

00309     {
00310         $this->freeLine();
00311     }

Here is the call graph for this function:

SplFileObject::freeLine

SplFileInfo::openFile ( mode = 'r',
use_include_path = false,
context = NULL 
) [inherited]

Open the current file as a SplFileObject instance.

Parameters:
mode open mode
use_include_path whether to search include paths (don't use)
context resource context to pased to open function
Exceptions:
RuntimeException if file cannot be opened (e.g. insufficient access rights).
Returns:
The opened file as a SplFileObject instance
See also:
SplFileObject

SplFileInfo::setFileClass()

file()

Definition at line 959 of file spl.php.

00959 {}

SplFileObject::readLine (  )  [private]

Returns:
next line read from file and increase the line counter

Definition at line 316 of file splfileobject.inc.

References eof(), fgets(), and freeLine().

Referenced by getCurrentLine().

00317     {
00318         if ($this->eof())
00319         {
00320             $this->freeLine();
00321             throw new RuntimeException("Cannot read from file " . $this->fname);
00322         }
00323         if ($this->line) {
00324             $this->lnum++;
00325         }
00326         $this->freeLine();
00327         $this->line = fgets($this->fp, $this->max_len);
00328         return $this->line;
00329     }

Here is the call graph for this function:

SplFileObject::eofSplFileObject::fgetsSplFileObject::freeLine

SplFileObject::rewind (  ) 

Invalidate current line buffer and set line number to 0.

Implements Iterator.

Definition at line 266 of file splfileobject.inc.

References freeLine().

Referenced by seek().

00267     {
00268         $this->freeLine();
00269         $this->lnum = 0;
00270     }

Here is the call graph for this function:

SplFileObject::freeLine

SplFileObject::seek ( line_pos  ) 

Parameters:
$line_pos Seek to this line

Implements SeekableIterator.

Definition at line 367 of file splfileobject.inc.

References eof(), getCurrentLine(), and rewind().

00368     {
00369         $this->rewind();
00370         while($this->lnum < $line_pos && !$this->eof())
00371         {
00372             $this->getCurrentLine();
00373         }
00374     }

Here is the call graph for this function:

SplFileObject::eofSplFileObject::getCurrentLineSplFileObject::rewindSplFileObject::freeLineSplFileObject::readLineSplFileObject::fgets

SplFileObject::setCsvControl ( delimiter = ';',
enclosure = '"' 
)

Set the delimiter and enclosure character used in fgetcsv.

Parameters:
delimiter new delimiter, defaults to ','
enclosure new enclosure, defaults to '"'

Definition at line 100 of file splfileobject.inc.

References $delimiter, and $enclosure.

00101     {
00102         $this->delimiter = $delimiter;
00103         $this->enclosure = $enclosure;
00104     }

SplFileInfo::setFileClass ( string  class_name = "SplFileObject"  )  [inherited]

Parameters:
class_name name of class used with openFile().

Must be derived from SPLFileObject.

Definition at line 964 of file spl.php.

00964 {}

SplFileObject::setFlags ( flags  ) 

Parameters:
$flags new flag set

Definition at line 218 of file splfileobject.inc.

References $flags.

00219     {
00220         $this->flags = $flags;
00221     }

SplFileInfo::setInfoClass ( string  class_name = "SplFileInfo"  )  [inherited]

Parameters:
class_name name of class used with getFileInfo(), getPathInfo().

Must be derived from SplFileInfo.

Definition at line 969 of file spl.php.

00969 {}

SplFileObject::setMaxLineLen ( max_len  ) 

Parameters:
$max_len set the maximum line length read

Definition at line 234 of file splfileobject.inc.

References $max_len.

00235     {
00236         $this->max_len = $max_len;
00237     }

SplFileObject::valid (  ) 

Returns:
whether more data can be read

Implements Iterator.

Definition at line 275 of file splfileobject.inc.

References eof().

00276     {
00277         return !$this->eof();
00278     }

Here is the call graph for this function:

SplFileObject::eof


Member Data Documentation

SplFileObject::$delimiter = ',' [private]

Definition at line 29 of file splfileobject.inc.

Referenced by fgetcsv(), and setCsvControl().

SplFileObject::$enclosure = '"' [private]

Definition at line 30 of file splfileobject.inc.

Referenced by fgetcsv(), and setCsvControl().

SplFileObject::$flags = 0 [private]

Definition at line 28 of file splfileobject.inc.

Referenced by setFlags().

SplFileObject::$fname [private]

Definition at line 24 of file splfileobject.inc.

SplFileObject::$fp [private]

Definition at line 23 of file splfileobject.inc.

SplFileObject::$line = NULL [private]

Definition at line 25 of file splfileobject.inc.

SplFileObject::$lnum = 0 [private]

Definition at line 26 of file splfileobject.inc.

SplFileObject::$max_len = 0 [private]

Definition at line 27 of file splfileobject.inc.

Referenced by setMaxLineLen().

const SplFileObject::DROP_NEW_LINE = 0x00000001

Flag: wheter to suppress new lines.

Definition at line 21 of file splfileobject.inc.


The documentation for this class was generated from the following file:
Generated on Thu Apr 26 01:07:48 2007 for SPL-StandardPHPLibrary by  doxygen 1.5.2