Re: Getting false positive on strpos ... despite doublecheck... HELP!

From: Date: Mon, 17 Mar 2003 13:40:05 +0000
Subject: Re: Getting false positive on strpos ... despite doublecheck... HELP!
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-140044@lists.php.net to get a copy of this message
> case strpos($line,"#date:") == 0 && strpos($line,"#date:") > !== false: You can just do a === 0 check here, you don't need the second check to make sure it isn't false. However, that's not really how you use a switch expression anyway. The expressions in the case statement should be constants. If you rewrite your code to look like this it will work fine: <?php // read the guestbook source file // version 1 $fp = fopen("guestbook.txt","r"); while (! feof($fp)) { $line = fgets($fp, 4096); if(substr($line,0,6)=='#date:') { $print = strtr(substr($line, 7),"\r\n"," "); $print = date("j F Y H.i.s O",strtotime(trim($print))); echo "<span class=\"ylwbld\">On $print, "; continue; } if(substr($line,0,7)=='#email:') { $emailfound = true; $print = strtr(substr($line, 8),"\r\n"," "); echo "<a href=\"mailto:".trim($print)."\" class=\"ylwlink\">"; continue; } if(substr($line,0,6)=='#name:') { $print = strtr(substr($line, 7),"\r\n"," "); echo trim($print); if ($emailfound) { echo("</a>"); } continue; } if(substr($line,0,6)=='#from:') { $print = strtr(substr($line, 6),"\r\n"," "); echo " of ".trim($print); continue; } if(substr($line,0,9)=='#message:') { $print = strtr(substr($line, 9),"\r\n"," "); echo " wrote:</span><br>\n"; echo "<span class=\"whttxt\">".trim($print)."</span><br>\n"; continue; } if(substr($line,0,6)=='#link:') { $print = strtr(substr($line, 6),"\r\n"," "); echo "<span class=\"ylwbld\">Link:</span> "; echo "<a href=\"http://".trim($print)."\" target=\"_new\" class=\"ylwlink\">".trim($print)."</a><br>\n"; continue; } if(substr($line,0,9)=='#comment:') { $print = strtr(substr($line, 9),"\r\n"," "); echo "<span class=\"redbld\">And the webmaster responded: ".trim($print)."</span><br>\n"; continue; } if(substr($line,0,3)=='#--') { $print = strtr(substr($line, 3),"\r\n"," "); echo "<hr width=\"85%\" color=\"#ffffff\" noshade align=\"center\">\n"; continue; } } fclose($fp); ?> -Rasmus

« previous php.general (#140044) next »