API16

JFile/read: Difference between revisions

From Joomla! Documentation

m removing red link to edit, no existant pages
m clean up
Line 2: Line 2:
Read the contents of a file
Read the contents of a file


<span class="editsection" style="font-size:76%;">
 
<nowiki>[<! removed edit link to red link >]</nowiki>
</span>


<! removed transcluded page call, red link never existed >
<! removed transcluded page call, red link never existed >
Line 82: Line 80:
</source>
</source>


<span class="editsection" style="font-size:76%;">
 
<nowiki>[<! removed edit link to red link >]</nowiki>
</span>
<! removed transcluded page call, red link never existed >
<! removed transcluded page call, red link never existed >



Revision as of 13:59, 24 March 2017

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

<CodeExamplesForm />