Bug #14541 Updated: strtok broken again

From: Date: Wed, 24 Jul 2002 10:41:21 +0000
Subject: Bug #14541 Updated: strtok broken again
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-15030@lists.php.net to get a copy of this message
ID: 14541 Updated by: hax@hax.at Reported By: mlemos@acm.org Status: Bogus Bug Type: Strings related Operating System: Any PHP Version: 4.1.0 New Comment: Nevermind my last posting. I was able to find a workaround :))) It would be cool if you would put this in the documentation I think ! To get the old strtok way: put this in your php documents and replace strtok with strtokold Function strtokold($string,$separator="") { static $next_token=''; if(!strcmp($separator,"")) { $separator=$string; $string=$next_token; } for($character=0;$character<strlen($separator);$character++) { if(GetType($position=strpos($string,$separator[$character]))=="integer") { $next_token=substr($string,$position+1); return(substr($string,0,$position)); } } $next_token=""; return($string); } tested and works FINE for me :))) thanks a bunch. Previous Comments: ------------------------------------------------------------------------ [2002-07-24 05:39:54] hax@hax.at I wholeheartly agree with mlemos ! This sucks big time! A lot !!! of old scripts are NOT working anymore ! This sucks. At least make a second function strtokold or something, that works like the old one, so it's easy to get the old scripts working again. changing the way things work with no backwards compatibility simply sucks. ------------------------------------------------------------------------ [2001-12-16 12:35:21] mlemos@acm.org No, jmoore just broke the behaviour of PHP strtok function that worked like that since PHP 3 for more than 4 years. This means that he also broke PHP code that relied in that behaviour, thus discouraging people to upgrade to PHP 4.1.0 . It does not matter what a Unix manual says because PHP users could not care less about Unix manuals when the behaviour of a function that they rely on changes without backwards compatibility. ------------------------------------------------------------------------ [2001-12-16 05:44:55] mfischer@php.net Documention is now fixed in CVS, thx 2 derick. ------------------------------------------------------------------------ [2001-12-16 04:45:08] derick@php.net jmoore did not break this, he fixed a faulty behavior that existed since 4.0.0. The current behavior is the correct one, as outlined by every unix or windows manual about the topic 'strtok'. Derick ------------------------------------------------------------------------ [2001-12-16 02:40:29] mlemos@acm.org I understand that it is very hard to make developers write tests for new software, but at least those that commit bug fixes should be required to submit test scripts that reproduce the bugs if they do not exist yet. As for myself, I always present test cases when they are possible in the bug report itself, just like I did for this. So, developers have at least half of the job done. I think that is a matter of making it a rule by adding to the CODING_STANDARDS. ------------------------------------------------------------------------ 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/14541 -- Edit this bug report at http://bugs.php.net/?id=14541&edit=1

« previous php.bugs (#15030) next »