note 83000 added to function.sprintf
| From: | fallseir at gmail dot com | Date: | Tue, 06 May 2008 09:54:22 +0000 |
| Subject: | note 83000 added to function.sprintf | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-139089@lists.php.net to get a copy of this message | ||
䏿®µç¨äºæ¿æ¢åç¬¦ä¸²ä¸æå®çkeyç代ç
--飿¬è½»ç 2008å¹´5æ6æ¥ (äº) 02:32 (PDT)
<?php
$str=mapKeys($formatstr,$maps);
$str="replace this template string !
the key maps is here
key1=>{key1},key{{2=>{key{2},key3}=>{key3{}}";
echo mapKeys($str
,array("key1"=>"value 1"
,"key{2"=>"value 2"
,"key3}"=>"value 3"
)
);
echo "\n"
?>
output>> replace this template string !
the key maps is here key1=>value 1,key{2=>value 2,key3}=>value 3
$ php -r 'highlight_file("test.php");'
<?php
/** test */
$str="replace this template string !
the key maps is here
key1=>{key1},key{{2=>{key{2},key3}=>{key3{}}";
echo mapKeys($str
,array("key1"=>"value 1"
,"key{2"=>"value 2"
,"key3}"=>"value 3"
)
);
echo "\n";
$str="abc{key}{}}%{%{}%%%}%
{{%{0{}%%,%%%,{key},%%,%%{key,2}
,%%{key,2},%$$%%{,%,";
echo mapKeys($str,array("key"=>"[the abc value]"
,"key,2"=>"[the %value% 2]"));
echo "\n";
$str="abc%%%%%%%%%,%%%
,%key%,%%,%%%key,2%,%,%$$%%,%,";
echo mapKeys($str,array("key"=>"[the abc value]"
,"key,2"=>"[the %value% 2]"),"|%|");
echo "\n";
//end test*/
/*
$ php test.php
output>>
replace this template string !
the key maps is here
key1=>value 1,key{2=>value 2,key3}=>value 3
abc[the abc value]}}%[%}%%%]%{%[0}%%,%%%
,{key],%%,%%[the %value% 2],%%[the %value% 2]
,%$$%%{,%,
abc%%%%%%%%%,%%%,%key%,%%,%%%key,2%
,%,%$$%%,%,
*/
/**
* 使ç¨mapsä¸å®ä¹çvalueæ¿æ¢å¯¹åºå
¶keyç
ç±å¼å§æ è®°å符åç»ææ è®°å符å
å«çå符串
*
*
彿 记对å¤å¼å§æ è®°åè·çå¼å§æ è®°æ¶æ
ç»ææ è®°æ¶è¡¨ç¤ºç¬¬ä¸ä¸ªå¼å§æ 记为转ä¹ç¬¦
*
彿 记对å
å¼å§æ è®°åè·çç»ææ è®°æ¶è¡¨ç¤º
第ä¸ä¸ªå¼å§æ 记为转ä¹ç¬¦
* æ«å°¾æ²¡æå¹é
çå¼å§æ è®°å°åæ ·è¾åº
*/
function mapKeys($str,$maps,$fstart=null,$fend=null){
if(!$fstart){
$fstart="{";
$fend="}";
}
if(!$fend){
$fend=$fstart;
}
// 妿æ è®°ç¸åå使ç¨mapKeysBaseè¿è¡æ¿æ¢
if($fstart==$fend){return mapKeysBase($str,$maps,$fstart);}
$index=0;
$offset=0;
while(false!==($index=strpos($str,$fstart,$offset))){
#
æ¾å°å¼å§æ è®°,å¤çå¼å§æ è®°ä¹åçæ°æ®
$v=substr($str,$offset,$index-$offset);
$offset=$index+strlen($fstart);
$p=true;
while(($find=substr($str,$offset,strlen($fstart)))==$fstart
||($find=substr($str,$offset,strlen($fend)))==$fend){
$v.=$find;
$offset=$offset+strlen($find);
$p=false;# 妿è¿ä¸ªæ è®°æ¯ç¨æ¥è½¬ä¹ç
if(false!==($index=strpos($str,$fstart,$offset))){
$v.=substr($str,$offset,$index-$offset);
$offset=$index+strlen($fstart);
$p=true;# æ¥æ¾ä¸ä¸ä¸ªå¼å§æ è®°
}
}
$o.=$v;
$v="";
# æ è®°äºå¼å§ å¹¶æ¾å°äº ç»æ
while($p
&&false!==($end=strpos($str,$fend,$offset))){
$v.=substr($str,$offset,$end-$offset);
# 妿è¿ä¸ªæ è®°æ¯è¢«è½¬ä¹ç
if(($find=substr($str,$end-strlen($fend),strlen($fstart)))
==$fstart){
$v=substr($v,0,strlen($v)-strlen($fstart)).$fend;
$offset=$end+strlen($fend);
continue;
}
$p=false;
}
if($v){
if(array_key_exists($v,$maps)){
$v=$maps[$v];
}else{
$v="[".$v."]";
}
$o.=$v;
$offset=$end+strlen($fend);
}
}
if($p){
$o.=$fstart;
}
$v=substr($str,$offset);
$o.=$v;
return $o;
}
?>
http://www.fallseir.com/wiki/PHP/MapKeys.html
----
Server IP: 221.194.139.225
Probable Submitter: 218.249.153.228
----
Manual Page -- http://www.php.net/manual/en/function.sprintf.php
Edit -- https://master.php.net/note/edit/83000
Del: integrated -- https://master.php.net/note/delete/83000/integrated
Del: useless -- https://master.php.net/note/delete/83000/useless
Del: bad code -- https://master.php.net/note/delete/83000/bad+code
Del: spam -- https://master.php.net/note/delete/83000/spam
Del: non-english -- https://master.php.net/note/delete/83000/non-english
Del: in docs -- https://master.php.net/note/delete/83000/in+docs
Del: other reasons-- https://master.php.net/note/delete/83000
Reject -- https://master.php.net/note/reject/83000
Search -- https://master.php.net/manage/user-notes.php