note 83001 deleted from function.sprintf by bjori

From: Date: Tue, 06 May 2008 19:57:25 +0000
Subject: note 83001 deleted from function.sprintf by bjori
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-139107@lists.php.net to get a copy of this message
Note Submitter: fallseir at gmail dot com Reason: bad code ---- the mapKeysBase for mapKeys <?php /** * 使用maps中定义的value替换对应其key的 由标记字符包含的字符串 * * 如果标记重复出现 则第一个为转义字符 (这也意味着标记字符不能作为key的开始字符) */ function mapKeysBase($str,$maps,$find=null){ if(!$find){ $find="%"; } $p=false; $v=""; $index=0; $offset=0; while(false!==($index=strpos($str,$find,$offset))){ $v.=substr($str,$offset,$index-$offset); $offset=$index+strlen($find); while(substr($str,$offset,strlen($find))==$find){ $v.=$find; $offset=$offset+strlen($find); if(false!==($index=strpos($str,$find,$offset))){ $v.=substr($str,$offset,$index-$offset); $offset=$index+strlen($find); } } if($p){ if(array_key_exists($v,$maps)){ $v=$maps[$v]; }else{ $v="[".$v."]"; } $o.=$v; $v=""; $p=false; }else{ $o.=$v; $v=""; $p=true; } } if($p){ $v.=$find; } $v.=substr($str,$offset); $o.=$v; return $o; } ?>

« previous php.notes (#139107) next »