ID: 22008 Comment by: phpdig at toiletoine dot net Reported By: airtravel at anet dot ne dot jp Status: Open Bug Type: Documentation problem Operating System: all PHP Version: 4.3.0 New Comment:
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 !! Previous Comments: ------------------------------------------------------------------------ [2003-02-03 14:59:42] [EMAIL PROTECTED] 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] [EMAIL PROTECTED] 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). ------------------------------------------------------------------------ [2003-02-02 15:41:51] [EMAIL PROTECTED] That or maybe a problem existed because it only gets/strips one line at a time which makes dealing with html tags spanning multiple lines not-so-good. So using this fgetss() example script vs strip_tags(file_get_contents($url)) will yield different results. Reclassifying as a doc problem for fgetss(): a) Add the 0 vs false entity b) Add a warning regarding spanning html tags; offer an alternative ------------------------------------------------------------------------ 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 -- PHP Documentation Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php