note 83001 deleted from function.sprintf by bjori
| From: | bjori@php.net | 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;
}
?>