note 94469 added to function.strpos

From: Date: Fri, 06 Nov 2009 22:03:34 +0000
Subject: note 94469 added to function.strpos
Groups: php.notes 
Request: Send a blank email to php-notes+get-162464@lists.php.net to get a copy of this message
A function I made to find the first occurrence of a particular needle not enclosed in quotes(single or double). Works for simple nesting (no backslashed nesting allowed). function strposq($haystack, $needle, $offset = 0){ $len = strlen($haystack); $charlen = strlen($needle); $flag1 = false; $flag2 = false; for($i = $offset; $i < $len; $i++){ if(substr($haystack, $i, 1) == "'"){ $flag1 = !$flag1 && !$flag2 ? true : false; } if(substr($haystack, $i, 1) == '"'){ $flag2 = !$flag1 && !$flag2 ? true : false; } if(substr($haystack, $i, $charlen) == $needle && !$flag1 && !$flag2){ return $i; } } return false; } echo strposq("he'llo'character;\"'som\"e;crap", ";"); //16 ---- Server IP: 202.65.157.132 Probable Submitter: 202.56.202.14 ---- Manual Page -- http://www.php.net/manual/en/function.strpos.php Edit -- https://master.php.net/note/edit/94469 Del: integrated -- https://master.php.net/note/delete/94469/integrated Del: useless -- https://master.php.net/note/delete/94469/useless Del: bad code -- https://master.php.net/note/delete/94469/bad+code Del: spam -- https://master.php.net/note/delete/94469/spam Del: non-english -- https://master.php.net/note/delete/94469/non-english Del: in docs -- https://master.php.net/note/delete/94469/in+docs Del: other reasons-- https://master.php.net/note/delete/94469 Reject -- https://master.php.net/note/reject/94469 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#162464) next »