PHP 4.0 Bug #6841: split, explode, strtok not parsing correctly

From: Date: Fri, 22 Sep 2000 02:55:42 +0000
Subject: PHP 4.0 Bug #6841: split, explode, strtok not parsing correctly
Groups: php.dev 
Request: Send a blank email to php-dev+get-33474@lists.php.net to get a copy of this message
From: swenson@heronetwork.com Operating system: SuSE PHP version: 4.0.2 PHP Bug Type: Scripting Engine problem Bug description: split, explode, strtok not parsing correctly On current build I am trying to parse an external tab and space separated file (mime types). All of the tokenizing functions appear to not be performing the regex parsing correctly. All of these functions are performing very odd. Most interesting is that the first item is not even getting into the arrays (or token lists). Example input: # Simple mime file text/html htm HTM html HTML shtml SHTML text/plain java JAVA c C cc CC cpp CPP h H txt TXT text/rtf rtf RTF Script: <?php $mimeFile="/tmp/mime.txt"; function get_mime_type ( $ext ) { global $mimeFile; if( !$ext || strlen(trim($ext)) == 0 ) { return "application/binary"; } $fp = fopen ($mimeFile, "r"); while(!feof($fp)) { $next = fgetss($fp, 300); $next = trim($next); echo("<p>Line in: $next<br>"); if( !$next ) continue; // try it with [\t\s] or [:space:] or " " etc. // it just has problems, same with split and strtok $mime = explode("[ ]",$next); if( substr($mime[0], 0, 1) == "#" ) continue; $len = count($mime); echo("Line has: $len tokens - "); for( $x = 1 ; $x <= $len ; $x++ ) { if( !$mime[$x] ) continue; if( substr($mime[$x] ,0 , 1) == "#" ) break; echo("$x - $mime[$x], "); if( $ext == $mime[$x] ) return $mime[0]; } } return "application/binary"; } echo("<br><H1>Mime type for .H is " . get_mime_type(".H") . "</H1>"); ?> Sample output: Line in: # Simple mime file Line in: Line in: text/html htm HTM html HTML shtml SHTML Line has: 6 tokens - 1 - HTM, 2 - html, 3 - HTML, 4 - shtml, 5 - SHTML, Line in: text/plain java JAVA c C cc CC cpp CPP h H txt TXT Line has: 12 tokens - 1 - JAVA, 2 - c, 3 - C, 4 - cc, 5 - CC, 6 - cpp, 7 - CPP, 8 - h, 9 - H, 10 - txt, 11 - TXT, Line in: text/rtf rtf RTF Line has: 2 tokens - 1 - RTF, Line in: Mime type for .H is application/binary

« previous php.dev (#33474) next »