PHP 5.4.31 Released

fgetss

(PHP 4, PHP 5)

fgetssGets line from file pointer and strip HTML tags

Description

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

Identical to fgets(), except that fgetss() attempts to strip any NUL bytes, HTML and PHP tags from the text it reads.

Parameters

handle

The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).

length

Length of the data to be retrieved.

allowable_tags

You can use the optional third parameter to specify tags which should not be stripped.

Return Values

Returns a string of up to length - 1 bytes read from the file pointed to by handle, with all HTML and PHP code stripped.

If an error occurs, returns FALSE.

Changelog

Version Description
5.0.0 The length parameter is optional

Example #1 Reading a PHP file line-by-line

<?php
$str 
= <<<EOD
<html><body>
 <p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents('sample.php'$str);

$handle = @fopen("sample.php""r");
if (
$handle) {
    while (!
feof($handle)) {
        
$buffer fgetss($handle4096);
        echo 
$buffer;
    }
    
fclose($handle);
}
?>

The above example will output something similar to:

 Welcome! Today is the  of .

Text outside of the HTML block.

Notes

Note: If PHP is not properly recognizing the line endings when reading files either on or created by a Macintosh computer, enabling the auto_detect_line_endings run-time configuration option may help resolve the problem.

See Also

add a note add a note

User Contributed Notes 1 note

up
1
AllenJB
2 days ago
The `fgetss()` function keeps the strip_tags state between reads to provide consistent results; observe the following example:

hello <html>
<?php
echo "we don't want this;"
?>
</html> world

This should rightfully output only "hello world" (and some newlines); if you would apply `strip_tags()` on each individually read line, you would also get stuff you don't want.

Source: http://news.php.net/php.internals/76247
To Top