#22008 [Opn->Ana]: fgetss : 0 vs false, html on multiple lines

From: Date: Sat, 03 May 2003 10:44:20 +0000
Subject: #22008 [Opn->Ana]: fgetss : 0 vs false, html on multiple lines
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-38982@lists.php.net to get a copy of this message
ID: 22008 Updated by: moriyoshi@php.net Reported By: airtravel at anet dot ne dot jp -Status: Open +Status: Analyzed -Bug Type: Documentation problem +Bug Type: Filesystem function related Operating System: all PHP Version: 4.3.0 New Comment: This bug may be caused by the less stateful strip_tags implementation, which should be rewritten with something like re2c in the future anyway. Previous Comments: ------------------------------------------------------------------------ [2003-02-18 15:50:37] phpdig at toiletoine dot net This code : <?php print "Test one :".strip_tags('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>Some title</TITLE> <META content="text/html; charset="ISO-8859-1" http-equiv=Content-Type>') ."<br>"; print "-----------<br>"; print "Test two :".strip_tags('<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>Some title</TITLE> <META content="text/html; charset="ISO-8859-1" http-equiv=Content-Type>') ."<br>"; print "-----------<br>"; print "Test three :".strip_tags('<!FOO BAR> real text <br>') ."<br>"; ?> Gives me : Test one : ----------- Test two : Some title ----------- Test three : Any "<!SOMETHING..." strips all !! ------------------------------------------------------------------------ [2003-02-03 14:59:42] iliaa@php.net I've tried the latest CVS and tried to fetch the page you've specified. As far as I can tell the function had worked correctly, only non-html output was displayed. P.S. Philip the fgetss() function is supposed to handle tags that span multiple lines, so that should not be a problem. ------------------------------------------------------------------------ [2003-02-02 22:06:07] airtravel at anet dot ne dot jp This is something to do with <!DOCTYPE> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> seems to be causing problem. Again PHP4.2.3 or earlier treats this without problem. ------------------------------------------------------------------------ [2003-02-02 21:08:46] airtravel at anet dot ne dot jp Thank you for your comments. I found this problem only occurs when parsing specific html. Please try the following URL to see my problem. Thank you. <?php $fp = fopen("http://adds.aviationweather.gov/projects/adds/metars/index.php?metarIds=ksfo", "r"); while (($line=fgetss($fp, 4096))!==FALSE) { echo $line; } fclose($fp); ?> <?php $fp = fopen("http://adds.aviationweather.gov/projects/adds/metars/index.php?metarIds=ksfo", "r"); while (($line = strip_tags(fgets($fp, 4096)))!==FALSE) { echo $line; } fclose($fp); ?> ------------------------------------------------------------------------ [2003-02-02 15:46:14] philip@php.net c) Add a <note> regarding the 'blank lines' comment from Ilia. I don't think strip_tags() needs this <note> but maybe it does (doubtful). ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/22008 -- Edit this bug report at http://bugs.php.net/?id=22008&edit=1

« previous php.bugs (#38982) next »