API16

API16:JFile/read

From Joomla! Documentation

Revision as of 01:39, 25 March 2017 by JoomlaWikiBot (talk | contribs) (preparing for archive only)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Description

Read the contents of a file


<! removed transcluded page call, red link never existed >

Syntax

read($filename, $incpath=false, $amount=0, $chunksize=8192, $offset=0)
Parameter Name Default Value Description
$filename $filename The full file path
$incpath false $incpath Use include path
$amount 0 $amount Amount of file to read
$chunksize 8192 $chunksize Size of chunks to read
$offset 0 $offset Offset of the file

Returns

mixed Returns file contents or boolean False if failed

Defined in

libraries/joomla/filesystem/file.php

Importing

jimport( 'joomla.filesystem.file' );

Source Body

function read($filename, $incpath = false, $amount = 0, $chunksize = 8192, $offset = 0)
{
        // Initialise variables.
        $data = null;
        if ($amount && $chunksize > $amount) { $chunksize = $amount; }
        if (false === $fh = fopen($filename, 'rb', $incpath)) {
                JError::raiseWarning(21, 'JFile::read: '.JText::_('Unable to open file') . ": '$filename'");
                return false;
        }
        clearstatcache();
        if ($offset) fseek($fh, $offset);
        if ($fsize = @ filesize($filename)) {
                if ($amount && $fsize > $amount) {
                        $data = fread($fh, $amount);
                } else {
                        $data = fread($fh, $fsize);
                }
        } else {
                $data = '';
                $x = 0;
                // While its:
                // 1: Not the end of the file AND
                // 2a: No Max Amount set OR
                // 2b: The length of the data is less than the max amount we want
                while (!feof($fh) && (!$amount || strlen($data) < $amount)) {
                        $data .= fread($fh, $chunksize);
                }
        }
        fclose($fh);

        return $data;
}


<! removed transcluded page call, red link never existed >

Examples

Code Examples