<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>飞扬轻狂&#039;s blog &#187; code</title>
	<atom:link href="http://blog.fallseir.com/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fallseir.com</link>
	<description>我心飞扬 我意轻狂</description>
	<lastBuildDate>Thu, 06 May 2010 07:13:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><cloud domain='blog.fallseir.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>AIR Helloworld</title>
		<link>http://blog.fallseir.com/2010/03/air-helloworld/</link>
		<comments>http://blog.fallseir.com/2010/03/air-helloworld/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 09:42:29 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[笔记]]></category>
		<category><![CDATA[helloworld]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=197</guid>
		<description><![CDATA[使用AIR快速开始一个Helloworld程序 关键步骤： 1、安装AIR环境 2、安装SDK 3、构建Helloworld项目 4、安装并测试Helloworld项目 ========================================== 具体细节： 1、安装AIR环境 * 到Adobe下载AIR环境 * 安装AIR环境 ，本文使用的是 Adobe AIR 1.5.3.9130 版本 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 2、安装SDK * 到Adobe下载SDK * 将下载到的SDK包解压并放置到运行目录 本文下载的SDK版本为 adt version &#8220;1.5.3.9120&#8243; 本文SDK安装目录为 D:\Program Files\Adobe\AdobeAIRSDK * 配置环境变量 将AIR SDK的工作路径添加到 PATH 变量中，（使adt和adl可以在任意目录以短路径方式启动） PATH = [... 保持原有的PATH值不变];D:\Program Files\Adobe\AdobeAIRSDK\bin &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 3、构建Helloworld项目 * 创佳Helloworld项目 1)、创建Helloworld目录 本文全路径为 e:\learn\AIR\Helloworld 进入 Helloworld ，开始构建 helloworld 应用 除非明确说明 [...]]]></description>
			<content:encoded><![CDATA[<p>使用AIR快速开始一个Helloworld程序</p>
<p>关键步骤：<br />
1、安装AIR环境<br />
2、安装SDK<br />
3、构建Helloworld项目<br />
4、安装并测试Helloworld项目<br />
==========================================<br />
具体细节：<br />
1、安装AIR环境<br />
* 到Adobe<a href="http://get.adobe.com/cn/air/">下载</a>AIR环境<br />
* 安装AIR环境 ，本文使用的是 Adobe AIR 1.5.3.9130 版本<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
2、安装SDK<br />
* 到Adobe<a href="http://www.adobe.com/cn/products/air/tools/sdk/">下载</a>SDK<br />
* 将下载到的SDK包解压并放置到运行目录<br />
本文下载的SDK版本为 adt version &#8220;1.5.3.9120&#8243;<br />
本文SDK安装目录为 D:\Program Files\Adobe\AdobeAIRSDK<br />
* 配置环境变量 将AIR SDK的工作路径添加到 PATH 变量中，（使adt和adl可以在任意目录以短路径方式启动）<br />
PATH = [... 保持原有的PATH值不变];D:\Program Files\Adobe\AdobeAIRSDK\bin<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
3、构建Helloworld项目<br />
* 创佳Helloworld项目<br />
1)、创建Helloworld目录<br />
本文全路径为 e:\learn\AIR\Helloworld<br />
进入 Helloworld ，开始构建 helloworld 应用<br />
除非明确说明 否则之后描述的文件和路径都是相对于此路径开始<br />
2)、创建项目描述文件 HelloWorld-app.xml</p>
<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;application xmlns="http://ns.adobe.com/air/application/1.5"&gt;
    &lt;id&gt;examples.html.HelloWorld&lt;/id&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;filename&gt;HelloWorld&lt;/filename&gt;
    &lt;initialWindow&gt;
        &lt;content&gt;HelloWorld.html&lt;/content&gt;
        &lt;visible&gt;true&lt;/visible&gt;
        &lt;width&gt;400&lt;/width&gt;
        &lt;height&gt;200&lt;/height&gt;
    &lt;/initialWindow&gt;
&lt;/application&gt;
</pre>
<p>3)、创建应用界面 HelloWorld.html</p>
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Hello World&lt;/title&gt;
    &lt;script type="text/javascript" src="AIRAliases.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
        function appLoad(){
            air.trace("Hello World");
        }
    &lt;/script&gt; 

&lt;/head&gt;
&lt;body onLoad="appLoad()"&gt;
    &lt;h1&gt;Hello World&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>4)、测试应用<br />
* 打开 cmd 并 cd 进入应用目录<br />
* 运行命令 adl HelloWorld-app.xml<br />
* > 系统将调用AIR运行时，启动一个400&#215;200的窗口应用并呈现Helloworld字符<br />
* > 系统在控制台输出 Hello World 字符<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
4、安装并测试Helloworld项目<br />
1)、生成自签名证书和密钥对<br />
* 运行命令 adt –certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword<br />
* 系统将在当前目录生成密钥文件 sampleCert.pfx<br />
2)、创建 AIR 安装文件<br />
* 运行命令 adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air<br />
HelloWorld-app.xml HelloWorld.html AIRAliases.js<br />
* 根据系统提示输入密钥文件的密码 samplePassword<br />
* 系统将根据 helloworld-app.xml 的描述生成AIR应用程序，并将helloworld.html 和 airaliases.js 当作附加资源嵌入AIR应用程序中<br />
3)、安装 Helloworld 应用<br />
* 双击 helloworld.air 或在命令行下执行 hellowrold.air 命令<br />
* 系统调用本地的air运行时环境解释helloworld.air并开始应用安装<br />
* 根据系统提示进行安装<br />
4)、当安装完成后，通过双击helloworld的快捷方式或到安装目录打开helloworld.exe 即可运行helloworld应用<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
参考：<br />
* <a href="http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html">使用 AIR SDK 创建第一个基于 HTML 的 AIR 应用程序</a>http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
资源：<br />
* <a href="http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/">使用 HTML 和 Ajax 开发 Adobe AIR 1.5 应用程序</a><br />
* <a href="http://help.adobe.com/zh_CN/AIR/1.5/jslr/index.html">针对 HTML 开发人员的 AIR 语言参考</a><br />
*  <a href="http://livedocs.adobe.com/flex/3_cn/langref/index.html">Flex 3.2 语言参考</a><br />
* <a href="http://www.adobe.com/cn/devnet/air/">Adobe AIR 开发人员中心</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/03/air-helloworld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用mysqldump进行单表备份</title>
		<link>http://blog.fallseir.com/2008/10/mysqldump_tables/</link>
		<comments>http://blog.fallseir.com/2008/10/mysqldump_tables/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 09:17:39 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[笔记]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[X shell]]></category>
		<category><![CDATA[数据备份]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=99</guid>
		<description><![CDATA[写了一个shell脚本 对数据库中每个表进行备份 这样可以方便的在表中进行筛选 bak_db_table.sh &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; # bak_db_table.sh db db_host db_user db_passwd > log.txt # by fallseir at 20081010 if [ $1 ] # 如果没有参数 then echo database $1; else echo 'backup database tables to gzip files sh bak_db_table.sh db [db_host] [db_user] [db_passwd] '; exit; fi # 参数赋值 [ $1 ] &#038;&#038; db=$1 [ $2 ] [...]]]></description>
			<content:encoded><![CDATA[<p>写了一个shell脚本 对数据库中每个表进行备份 这样可以方便的在表中进行筛选</p>
<p>bak_db_table.sh<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<pre>
# bak_db_table.sh db db_host db_user db_passwd > log.txt
# by fallseir at 20081010

if [ $1 ] # 如果没有参数
then
echo database $1;
else
echo 'backup database tables to gzip files
sh bak_db_table.sh db [db_host] [db_user] [db_passwd]
'; exit;
fi

# 参数赋值
[ $1 ] &#038;&#038; db=$1
[ $2 ] &#038;&#038; dbh=$2
[ $3 ] &#038;&#038; dbu=$3
[ $4 ] &#038;&#038; dbp=$4

# 配置数据库参数
[ $dbh ] &#038;&#038; dbh="-h"$dbh
[ $dbu ] &#038;&#038; dbu="-u"$dbu
[ $dbp ] &#038;&#038; dbp="-p"$dbp

#如果不存在 以db命名的目录 则创建
[ -a $db ] || mkdir $db; echo "mkdir $db"

# 获取数据库中的表列表
echo 'list=(`echo "show tables;"|mysql -h$dbh -u$dbu -p$dbp $db`)'
list=(`echo "show tables;"|mysql $dbh $dbu $dbp $db`)
# 获取表个数
tbcount=$((${#list[@]}-2))
if [ $tbcount= -2 ] # 如果表不存在 或数据库连接失败
then
  echo empty tables in $db or connent failed! ; exit 1;
fi
echo table count: $tbcount

# 对每个表进行备份 并压缩
# 使用gzip -d $file 进行解压
# 使用 mysql $database < $bakfile 进行恢复
for (( i = 1 ; i < ($tbcount+1) ; i ++ ))
do
  table=${list[$i]}
  echo back table $table
  mysqldump $dbh $dbu $dbp $db $table | gzip -c > $db/177.6.db.$db.$table.gz
# $? 前一命令的返回值, 0 为成功 1为失败 但mysqldump没有遵守这个约定
  echo back table $table $?
  sleep 10
done
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2008/10/mysqldump_tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一段用于替换字符串中指定的key的代码</title>
		<link>http://blog.fallseir.com/2008/05/mapkeys/</link>
		<comments>http://blog.fallseir.com/2008/05/mapkeys/#comments</comments>
		<pubDate>Tue, 06 May 2008 09:58:02 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[fallseir]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=89</guid>
		<description><![CDATA[一段用于替换字符串中指定的key的代码 &#8211;[[User:Fallseir&#124;飞扬轻狂]] 2008年5月6日 (二) 02:32 (PDT) $str=mapKeys($formatstr,$maps); $str=&#8220;replace&#160;this&#160;template&#160;string&#160;!the&#160;key&#160;maps&#160;is&#160;herekey1=&#62;{key1},key{{2=&#62;{key{2},key3}=&#62;{key3{}}&#8221;;echo&#160;mapKeys($str&#160;&#160;,array(&#8220;key1&#8243;=&#62;&#8220;value&#160;1&#8243;&#160;&#160;,&#8220;key{2&#8243;=&#62;&#8220;value&#160;2&#8243;&#160;&#160;,&#8220;key3}&#8221;=&#62;&#8220;value&#160;3&#8243;&#160;&#160;));echo&#160;&#8220;\n&#8221; 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%,%,%$$%%,%, $ php -r &#8216;highlight_file(&#8220;test.php&#8221;);&#8217; &#60;?php/**&#160;test&#160;*/$str="replace&#160;this&#160;template&#160;string&#160;!the&#160;key&#160;maps&#160;is&#160;herekey1=&#62;{key1},key{{2=&#62;{key{2},key3}=&#62;{key3{}}";echo&#160;mapKeys($str&#160;&#160;,array("key1"=&#62;"value&#160;1"&#160;&#160;,"key{2"=&#62;"value&#160;2"&#160;&#160;,"key3}"=&#62;"value&#160;3"&#160;&#160;));echo&#160;"\n"; $str="abc{key}{}}%{%{}%%%}%{{%{0{}%%,%%%,{key},%%,%%{key,2},%%{key,2},%$$%%{,%,";echo&#160;mapKeys($str,array("key"=&#62;"[the&#160;abc&#160;value]","key,2"=&#62;"[the&#160;%value%&#160;2]"));echo&#160;"\n"; $str="abc%%%%%%%%%,%%%,%key%,%%,%%%key,2%,%,%$$%%,%,";echo&#160;mapKeys($str,array("key"=&#62;"[the&#160;abc&#160;value]"&#160;&#160;&#160;&#160;,"key,2"=&#62;"[the&#160;%value%&#160;2]"),"&#124;%&#124;");echo&#160;"\n";//end&#160;test*//*$&#160;php&#160;test.phpoutput&#62;&#62;replace&#160;this&#160;template&#160;string&#160;!the&#160;key&#160;maps&#160;is&#160;herekey1=&#62;value&#160;1,key{2=&#62;value&#160;2,key3}=&#62;value&#160;3abc[the&#160;abc&#160;value]}}%[%}%%%]%{%[0}%%,%%%,{key],%%,%%[the&#160;%value%&#160;2],%%[the&#160;%value%&#160;2],%$$%%{,%,abc%%%%%%%%%,%%%,%key%,%%,%%%key,2%,%,%$$%%,%,&#160;&#160;*/&#160;&#160;/**&#160;*&#160;使用maps中定义的value替换对应其key的由开始标记字符和结束标记字符包含的字符串&#160;*&#160;*&#160;当标记对外开始标记后跟着开始标记时或结束标记时表示第一个开始标记为转义符&#160;*&#160;当标记对内开始标记后跟着结束标记时表示第一个开始标记为转义符&#160;*&#160;末尾没有匹配的开始标记将原样输出&#160;*/function&#160;mapKeys($str,$maps,$fstart=null,$fend=null){&#160;&#160;if(!$fstart){&#160;&#160;&#160;&#160;&#160;&#160;$fstart="{";&#160;&#160;&#160;&#160;&#160;&#160;$fend="}";&#160;&#160;}&#160;&#160;if(!$fend){&#160;&#160;&#160;&#160;$fend=$fstart;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;//&#160;如果标记相同则使用mapKeysBase进行替换&#160;&#160;if($fstart==$fend){return&#160;mapKeysBase($str,$maps,$fstart);}&#160;&#160;&#160;$index=0;&#160;&#160;$offset=0;&#160;&#160;while(false!==($index=strpos($str,$fstart,$offset))){&#160;&#160;&#160;&#160;#&#160;找到开始标记,处理开始标记之前的数据&#160;&#160;&#160;&#160;$v=substr($str,$offset,$index-$offset);&#160;&#160;&#160;&#160;$offset=$index+strlen($fstart);&#160;&#160;&#160;&#160;$p=true;&#160;&#160;&#160;&#160;while(($find=substr($str,$offset,strlen($fstart)))==$fstart&#160;&#160;&#160;&#160;&#160;&#160;&#124;&#124;($find=substr($str,$offset,strlen($fend)))==$fend){&#160;&#160;&#160;&#160;&#160;&#160;$v.=$find;&#160;&#160;&#160;&#160;&#160;&#160;$offset=$offset+strlen($find);&#160;&#160;&#160;&#160;&#160;&#160;$p=false;#&#160;如果这个标记是用来转义的&#160;&#160;&#160;&#160;&#160;&#160;if(false!==($index=strpos($str,$fstart,$offset))){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$v.=substr($str,$offset,$index-$offset);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$offset=$index+strlen($fstart);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$p=true;#&#160;查找下一个开始标记&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;$o.=$v;&#160;&#160;&#160;&#160;$v="";&#160;&#160;&#160;&#160;#&#160;标记了开始&#160;并找到了&#160;结束&#160;&#160;&#160;&#160;while($p&#160;&#160;&#160;&#160;&#160;&#160;&#38;&#38;false!==($end=strpos($str,$fend,$offset))){&#160;&#160;&#160;&#160;&#160;&#160;$v.=substr($str,$offset,$end-$offset);&#160;&#160;&#160;&#160;&#160;&#160;#&#160;如果这个标记是被转义的&#160;&#160;&#160;&#160;&#160;&#160;if(($find=substr($str,$end-strlen($fend),strlen($fstart)))&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;==$fstart){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$v=substr($v,0,strlen($v)-strlen($fstart)).$fend;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$offset=$end+strlen($fend);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;continue;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;&#160;&#160;$p=false;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;if($v){&#160;&#160;&#160;&#160;&#160;&#160;if(array_key_exists($v,$maps)){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$v=$maps[$v];&#160;&#160;&#160;&#160;&#160;&#160;}else{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$v="[".$v."]";&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;&#160;&#160;$o.=$v;&#160;&#160;&#160;&#160;&#160;&#160;$offset=$end+strlen($fend);&#160;&#160;&#160;&#160;}&#160;&#160;}&#160;&#160;if($p){&#160;&#160;&#160;&#160;$o.=$fstart;&#160;&#160;}&#160;&#160;$v=substr($str,$offset);&#160;&#160;$o.=$v;&#160;&#160;return&#160;$o;}/**&#160;*&#160;使用maps中定义的value替换对应其key的由标记字符包含的字符串&#160;*&#160;*&#160;如果标记重复出现&#160;则第一个为转义字符（这也意味着标记字符不能作为key的开始字符）&#160;*/function&#160;mapKeysBase($str,$maps,$find=null){&#160;&#160;if(!$find){&#160;&#160;&#160;&#160;$find="%";&#160;&#160;}&#160;&#160;$p=false;&#160;&#160;$v="";&#160;&#160;$index=0;&#160;&#160;$offset=0;&#160;&#160;while(false!==($index=strpos($str,$find,$offset))){&#160;&#160;&#160;&#160;$v.=substr($str,$offset,$index-$offset);&#160;&#160;&#160;&#160;$offset=$index+strlen($find);&#160;&#160;&#160;&#160;while(substr($str,$offset,strlen($find))==$find){&#160;&#160;&#160;&#160;&#160;&#160;$v.=$find;&#160;&#160;&#160;&#160;&#160;&#160;$offset=$offset+strlen($find);&#160;&#160;&#160;&#160;&#160;&#160;if(false!==($index=strpos($str,$find,$offset))){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$v.=substr($str,$offset,$index-$offset);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$offset=$index+strlen($find);&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;if($p){&#160;&#160;&#160;&#160;&#160;&#160;if(array_key_exists($v,$maps)){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$v=$maps[$v];&#160;&#160;&#160;&#160;&#160;&#160;}else{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$v="[".$v."]";&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;&#160;&#160;$o.=$v;&#160;&#160;&#160;&#160;&#160;&#160;$v="";&#160;&#160;&#160;&#160;&#160;&#160;$p=false;&#160;&#160;&#160;&#160;}else{&#160;&#160;&#160;&#160;&#160;&#160;$o.=$v;&#160;&#160;&#160;&#160;&#160;&#160;$v="";&#160;&#160;&#160;&#160;&#160;&#160;$p=true;&#160;&#160;&#160;&#160;}&#160;&#160;}&#160;&#160;if($p){&#160;&#160;&#160;&#160;$v.=$find;&#160;&#160;}&#160;&#160;$v.=substr($str,$offset);&#160;&#160;$o.=$v;&#160;&#160;return&#160;$o;}?&#62; 取自&#8221;http://www.fallseir.com/wiki/PHP/MapKeys.html&#8221;]]></description>
			<content:encoded><![CDATA[<p>一段用于替换字符串中指定的key的代码</p>
<p>&#8211;[[User:Fallseir|飞扬轻狂]] 2008年5月6日 (二) 02:32 (PDT)<br />
$str=mapKeys($formatstr,$maps);</p>
<p><span style="color: #0000BB">$str</span><span style="color: #007700">=</span><span style="color: #DD0000">&#8220;replace&nbsp;this&nbsp;template&nbsp;string&nbsp;!the&nbsp;key&nbsp;maps&nbsp;is&nbsp;here<br />key1=&gt;{key1},key{{2=&gt;{key{2},key3}=&gt;{key3{}}&#8221;</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">mapKeys</span><span style="color: #007700">(</span><span style="color: #0000BB">$str<br />&nbsp;&nbsp;</span><span style="color: #007700">,array(</span><span style="color: #DD0000">&#8220;key1&#8243;</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">&#8220;value&nbsp;1&#8243;<br />&nbsp;&nbsp;</span><span style="color: #007700">,</span><span style="color: #DD0000">&#8220;key{2&#8243;</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">&#8220;value&nbsp;2&#8243;<br />&nbsp;&nbsp;</span><span style="color: #007700">,</span><span style="color: #DD0000">&#8220;key3}&#8221;</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">&#8220;value&nbsp;3&#8243;<br />&nbsp;&nbsp;</span><span style="color: #007700">)<br />);<br />echo&nbsp;</span><span style="color: #DD0000">&#8220;\n&#8221;</span></p>
<p>output>><br />
replace this template string !the key maps is here<br />
key1=>value 1,key{2=>value 2,key3}=>value 3<br />
abc[the abc value]}}%[%}%%%]%{%[0}%%,%%%,{key],%%,%%[the %value% 2],%%[the %value% 2],%$$%%{,%,<br />
abc%%%%%%%%%,%%%,%key%,%%,%%%key,2%,%,%$$%%,%,</p>
<p>$ php -r &#8216;highlight_file(&#8220;test.php&#8221;);&#8217;</p>
<p><code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/**&nbsp;test&nbsp;*/<br /></span><span style="color: #0000BB">$str</span><span style="color: #007700">=</span><span style="color: #DD0000">"replace&nbsp;this&nbsp;template&nbsp;string&nbsp;!the&nbsp;key&nbsp;maps&nbsp;is&nbsp;here<br />key1=&gt;{key1},key{{2=&gt;{key{2},key3}=&gt;{key3{}}"</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">mapKeys</span><span style="color: #007700">(</span><span style="color: #0000BB">$str<br />&nbsp;&nbsp;</span><span style="color: #007700">,array(</span><span style="color: #DD0000">"key1"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"value&nbsp;1"<br />&nbsp;&nbsp;</span><span style="color: #007700">,</span><span style="color: #DD0000">"key{2"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"value&nbsp;2"<br />&nbsp;&nbsp;</span><span style="color: #007700">,</span><span style="color: #DD0000">"key3}"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"value&nbsp;3"<br />&nbsp;&nbsp;</span><span style="color: #007700">)<br />);<br />echo&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;</p>
<p></span><span style="color: #0000BB">$str</span><span style="color: #007700">=</span><span style="color: #DD0000">"abc{key}{}}%{%{}%%%}%{{%{0{}%%,%%%,{key},%%,%%{key,2},%%{key,2},%$$%%{,%,"</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">mapKeys</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,array(</span><span style="color: #DD0000">"key"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"[the&nbsp;abc&nbsp;value]"<br /></span><span style="color: #007700">,</span><span style="color: #DD0000">"key,2"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"[the&nbsp;%value%&nbsp;2]"</span><span style="color: #007700">));<br />echo&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;</p>
<p></span><span style="color: #0000BB">$str</span><span style="color: #007700">=</span><span style="color: #DD0000">"abc%%%%%%%%%,%%%,%key%,%%,%%%key,2%,%,%$$%%,%,"</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">mapKeys</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,array(</span><span style="color: #DD0000">"key"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"[the&nbsp;abc&nbsp;value]"<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">,</span><span style="color: #DD0000">"key,2"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"[the&nbsp;%value%&nbsp;2]"</span><span style="color: #007700">),</span><span style="color: #DD0000">"|%|"</span><span style="color: #007700">);<br />echo&nbsp;</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//end&nbsp;test*/<br />/*<br />$&nbsp;php&nbsp;test.php<br />output&gt;&gt;<br />replace&nbsp;this&nbsp;template&nbsp;string&nbsp;!the&nbsp;key&nbsp;maps&nbsp;is&nbsp;here<br />key1=&gt;value&nbsp;1,key{2=&gt;value&nbsp;2,key3}=&gt;value&nbsp;3<br />abc[the&nbsp;abc&nbsp;value]}}%[%}%%%]%{%[0}%%,%%%,{key],%%,%%[the&nbsp;%value%&nbsp;2],%%[the&nbsp;%value%&nbsp;2],%$$%%{,%,<br />abc%%%%%%%%%,%%%,%key%,%%,%%%key,2%,%,%$$%%,%,<br />&nbsp;<br />&nbsp;*/<br />&nbsp;<br />&nbsp;<br />/**<br />&nbsp;*&nbsp;使用maps中定义的value替换对应其key的由开始标记字符和结束标记字符包含的字符串<br />&nbsp;*<br />&nbsp;*&nbsp;当标记对外开始标记后跟着开始标记时或结束标记时表示第一个开始标记为转义符<br />&nbsp;*&nbsp;当标记对内开始标记后跟着结束标记时表示第一个开始标记为转义符<br />&nbsp;*&nbsp;末尾没有匹配的开始标记将原样输出<br />&nbsp;*/<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">mapKeys</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$maps</span><span style="color: #007700">,</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">=</span><span style="color: #0000BB">null</span><span style="color: #007700">,</span><span style="color: #0000BB">$fend</span><span style="color: #007700">=</span><span style="color: #0000BB">null</span><span style="color: #007700">){<br />&nbsp;&nbsp;if(!</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">=</span><span style="color: #DD0000">"{"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$fend</span><span style="color: #007700">=</span><span style="color: #DD0000">"}"</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;if(!</span><span style="color: #0000BB">$fend</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$fend</span><span style="color: #007700">=</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;如果标记相同则使用mapKeysBase进行替换<br />&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">==</span><span style="color: #0000BB">$fend</span><span style="color: #007700">){return&nbsp;</span><span style="color: #0000BB">mapKeysBase</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$maps</span><span style="color: #007700">,</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">);}<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$index</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;while(</span><span style="color: #0000BB">false</span><span style="color: #007700">!==(</span><span style="color: #0000BB">$index</span><span style="color: #007700">=</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">))){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;找到开始标记,处理开始标记之前的数据<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">$index</span><span style="color: #007700">-</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$index</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">=</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;while((</span><span style="color: #0000BB">$find</span><span style="color: #007700">=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">)))==</span><span style="color: #0000BB">$fstart<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">||(</span><span style="color: #0000BB">$find</span><span style="color: #007700">=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fend</span><span style="color: #007700">)))==</span><span style="color: #0000BB">$fend</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">$find</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$offset</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$find</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">=</span><span style="color: #0000BB">false</span><span style="color: #007700">;</span><span style="color: #FF8000">#&nbsp;如果这个标记是用来转义的<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">false</span><span style="color: #007700">!==(</span><span style="color: #0000BB">$index</span><span style="color: #007700">=</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">))){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">$index</span><span style="color: #007700">-</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$index</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">=</span><span style="color: #0000BB">true</span><span style="color: #007700">;</span><span style="color: #FF8000">#&nbsp;查找下一个开始标记<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">.=</span><span style="color: #0000BB">$v</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #DD0000">""</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;标记了开始&nbsp;并找到了&nbsp;结束<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">while(</span><span style="color: #0000BB">$p<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">&amp;&amp;</span><span style="color: #0000BB">false</span><span style="color: #007700">!==(</span><span style="color: #0000BB">$end</span><span style="color: #007700">=</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$fend</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">))){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">$end</span><span style="color: #007700">-</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;如果这个标记是被转义的<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if((</span><span style="color: #0000BB">$find</span><span style="color: #007700">=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$end</span><span style="color: #007700">-</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fend</span><span style="color: #007700">),</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;==</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$v</span><span style="color: #007700">,</span><span style="color: #0000BB">0</span><span style="color: #007700">,</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$v</span><span style="color: #007700">)-</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">)).</span><span style="color: #0000BB">$fend</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$end</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fend</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">=</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">$v</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">array_key_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$v</span><span style="color: #007700">,</span><span style="color: #0000BB">$maps</span><span style="color: #007700">)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #0000BB">$maps</span><span style="color: #007700">[</span><span style="color: #0000BB">$v</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #DD0000">"["</span><span style="color: #007700">.</span><span style="color: #0000BB">$v</span><span style="color: #007700">.</span><span style="color: #DD0000">"]"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">.=</span><span style="color: #0000BB">$v</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$end</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$fend</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;if(</span><span style="color: #0000BB">$p</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">.=</span><span style="color: #0000BB">$fstart</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">.=</span><span style="color: #0000BB">$v</span><span style="color: #007700">;<br />&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">;<br />}<br /></span><span style="color: #FF8000">/**<br />&nbsp;*&nbsp;使用maps中定义的value替换对应其key的由标记字符包含的字符串<br />&nbsp;*<br />&nbsp;*&nbsp;如果标记重复出现&nbsp;则第一个为转义字符（这也意味着标记字符不能作为key的开始字符）<br />&nbsp;*/<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">mapKeysBase</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$maps</span><span style="color: #007700">,</span><span style="color: #0000BB">$find</span><span style="color: #007700">=</span><span style="color: #0000BB">null</span><span style="color: #007700">){<br />&nbsp;&nbsp;if(!</span><span style="color: #0000BB">$find</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$find</span><span style="color: #007700">=</span><span style="color: #DD0000">"%"</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">=</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #DD0000">""</span><span style="color: #007700">;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$index</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;while(</span><span style="color: #0000BB">false</span><span style="color: #007700">!==(</span><span style="color: #0000BB">$index</span><span style="color: #007700">=</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$find</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">))){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">$index</span><span style="color: #007700">-</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$index</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$find</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$find</span><span style="color: #007700">))==</span><span style="color: #0000BB">$find</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">$find</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$offset</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$find</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">false</span><span style="color: #007700">!==(</span><span style="color: #0000BB">$index</span><span style="color: #007700">=</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$find</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">))){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">,</span><span style="color: #0000BB">$index</span><span style="color: #007700">-</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$offset</span><span style="color: #007700">=</span><span style="color: #0000BB">$index</span><span style="color: #007700">+</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$find</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">$p</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">array_key_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$v</span><span style="color: #007700">,</span><span style="color: #0000BB">$maps</span><span style="color: #007700">)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #0000BB">$maps</span><span style="color: #007700">[</span><span style="color: #0000BB">$v</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #DD0000">"["</span><span style="color: #007700">.</span><span style="color: #0000BB">$v</span><span style="color: #007700">.</span><span style="color: #DD0000">"]"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">.=</span><span style="color: #0000BB">$v</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #DD0000">""</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">=</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">.=</span><span style="color: #0000BB">$v</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">=</span><span style="color: #DD0000">""</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$p</span><span style="color: #007700">=</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;if(</span><span style="color: #0000BB">$p</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">$find</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$v</span><span style="color: #007700">.=</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">,</span><span style="color: #0000BB">$offset</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">.=</span><span style="color: #0000BB">$v</span><span style="color: #007700">;<br />&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$o</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;<br /></span><br /></span><br />
</code></p>
<p>取自&#8221;<a href="http://www.fallseir.com/wiki/PHP/MapKeys.html">http://www.fallseir.com/wiki/PHP/MapKeys.html</a>&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2008/05/mapkeys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Win下出现apache无法启动的解决方式</title>
		<link>http://blog.fallseir.com/2008/05/apachestart/</link>
		<comments>http://blog.fallseir.com/2008/05/apachestart/#comments</comments>
		<pubDate>Tue, 06 May 2008 03:49:46 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=88</guid>
		<description><![CDATA[Win下出现apache无法启动的解决方式 使用xampp时，时常会遇到apache启动不了的情况，而xampp的控制面板有没有什么像样的提示 只有一个&#8221;Busy&#8230;&#8221; 但重启Win后，先启动apache就不会遇到问题。 但是事情总是有原因的，决定去查下，也许是xampp给的提示不足，而不是apache的问题， > cmd > d:\ > cd tools\xampp\apache\bin\ #我的apache安装位置 > httpd # apache的启动程序 (OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : make_sock: c ould not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs # 找到原因了 原来是我的80端口被占用了 > netstat -ano # 查看网络状态 Proto Local Address Foreign Address State PID TCP 127.0.0.1:80 [...]]]></description>
			<content:encoded><![CDATA[<p>Win下出现apache无法启动的解决方式</p>
<p>使用xampp时，时常会遇到apache启动不了的情况，而xampp的控制面板有没有什么像样的提示 只有一个&#8221;Busy&#8230;&#8221; </p>
<p>但重启Win后，先启动apache就不会遇到问题。 </p>
<p>但是事情总是有原因的，决定去查下，也许是xampp给的提示不足，而不是apache的问题， </p>
<pre>
> cmd
> d:\
> cd tools\xampp\apache\bin\ #我的apache安装位置
> httpd # apache的启动程序

(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。  : make_sock: c
ould not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
# 找到原因了 原来是我的80端口被占用了

> netstat -ano # 查看网络状态

  Proto  Local Address          Foreign Address        State           PID
  TCP    127.0.0.1:80           127.0.0.1:1920         CLOSE_WAIT      1112
  TCP    127.0.0.1:80           127.0.0.1:2016         CLOSE_WAIT      1112
  ...
# 通过 Local Address 中端口为80的行 可以看到 我的80端口被PID为1112的进程占用了

任务管理器>进程 / 工具栏 > 查看 > 选择列 在“PID(进程ID)”项上打勾
在进程列表中 查找PID为1112的进程
# 我这里是该死的迅雷 ！！
# 当然之前我还遇到过QQ的时候
ok 杀掉这个进程 或者关掉罪魁，启动Apache 道路终于通畅了！^_～
</pre>
<p>取自&#8221;<a href="http://www.fallseir.com/wiki/Win%E4%B8%8B%E5%87%BA%E7%8E%B0apache%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E5%BC%8F.html">wiki:Win下出现apache无法启动的解决方式</a>&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2008/05/apachestart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>code: 页面跳转 &#8211; php 语句收集</title>
		<link>http://blog.fallseir.com/2007/06/code-%e9%a1%b5%e9%9d%a2%e8%b7%b3%e8%bd%ac-php-%e8%af%ad%e5%8f%a5%e6%94%b6%e9%9b%86/</link>
		<comments>http://blog.fallseir.com/2007/06/code-%e9%a1%b5%e9%9d%a2%e8%b7%b3%e8%bd%ac-php-%e8%af%ad%e5%8f%a5%e6%94%b6%e9%9b%86/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 08:31:01 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[收集]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/2007/06/code-%e9%a1%b5%e9%9d%a2%e8%b7%b3%e8%bd%ac-php-%e8%af%ad%e5%8f%a5%e6%94%b6%e9%9b%86/</guid>
		<description><![CDATA[&#60;?phpfunction&#160;page_redirect($redirect_to){&#160;&#160;&#160;&#160;if&#160;(headers_sent()){&#160;//&#160;Use&#160;JavaScript&#160;to&#160;redirect&#160;if&#160;content&#160;has&#160;been&#160;previously&#160;sent&#160;(not&#160;recommended,&#160;but&#160;safe)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;'&#60;script&#160;language="JavaScript"&#160;type="text/javascript"&#62;window.location='';&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;$redirect_to;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;'';&#60;/script&#62;';&#160;&#160;&#160;&#160;}else{&#160;&#160;&#160;&#160;//&#160;Default&#160;Header&#160;Redirect&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;header('Location:&#160;'&#160;.&#160;$redirect_to);&#160;&#160;&#160;&#160;}}?&#62;]]></description>
			<content:encoded><![CDATA[<p><code><font color="#000000"><br />
<font color="#0000BB">&lt;?php<br /></font><font color="#007700">function&nbsp;</font><font color="#0000BB">page_redirect</font><font color="#007700">(</font><font color="#0000BB">$redirect_to</font><font color="#007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</font><font color="#0000BB">headers_sent</font><font color="#007700">()){&nbsp;</font><font color="#FF8000">//&nbsp;Use&nbsp;JavaScript&nbsp;to&nbsp;redirect&nbsp;if&nbsp;content&nbsp;has&nbsp;been&nbsp;previously&nbsp;sent&nbsp;(not&nbsp;recommended,&nbsp;but&nbsp;safe)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#007700">echo&nbsp;</font><font color="#DD0000">'&lt;script&nbsp;language="JavaScript"&nbsp;type="text/javascript"&gt;window.location=''</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</font><font color="#0000BB">$redirect_to</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</font><font color="#DD0000">'';&lt;/script&gt;'</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}else{&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//&nbsp;Default&nbsp;Header&nbsp;Redirect<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">header</font><font color="#007700">(</font><font color="#DD0000">'Location:&nbsp;'&nbsp;</font><font color="#007700">.&nbsp;</font><font color="#0000BB">$redirect_to</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></font><font color="#0000BB">?&gt;</font></p>
<p></font><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2007/06/code-%e9%a1%b5%e9%9d%a2%e8%b7%b3%e8%bd%ac-php-%e8%af%ad%e5%8f%a5%e6%94%b6%e9%9b%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>技巧:博客圈的json输出 in feedsky</title>
		<link>http://blog.fallseir.com/2007/06/%e6%8a%80%e5%b7%a7%e5%8d%9a%e5%ae%a2%e5%9c%88%e7%9a%84json%e8%be%93%e5%87%ba-in-feedsky/</link>
		<comments>http://blog.fallseir.com/2007/06/%e6%8a%80%e5%b7%a7%e5%8d%9a%e5%ae%a2%e5%9c%88%e7%9a%84json%e8%be%93%e5%87%ba-in-feedsky/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 08:15:17 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[feedsky]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[笔记]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/2007/06/%e6%8a%80%e5%b7%a7%e5%8d%9a%e5%ae%a2%e5%9c%88%e7%9a%84json%e8%be%93%e5%87%ba-in-feedsky/</guid>
		<description><![CDATA[技巧:博客圈的json输出 in feedsky json: http://network.feedsky.com/test_fn/json?d=0&#038;c=15&#038;p=2&#038;e=gbk&#038;v=obj feedsky发布了新的博客圈系统，并提供了json输出的支持 上面的代码就是我建的一个博客圈的json输出地址 d代表是否输出描述 c代表输出条数 p代表输出的页面（json版的支持分页显示！） e代表输出的编码（建议使用utf-8或者gbk！） v代表输出的变量名 比如这个地址的内容 （http://network.feedsky.com/test_fn/json?d=0&#038;c=1&#038;p=1&#038;e=utf-8&#038;v=obj） 稍微整理了下 obj={ title:'测试博客圈', description:'测试博客圈\ntesting...', is_page_end:'', item_count:'', items:[ {title:'笔记:构建分页导航', pubDate:'Thu, 07 Jun 2007 16:32:13 +0800', link:'http://item.feedsky.com/~feedsky/fallseir/~1247382/7460200/1223971/1/item.html' }], encoding:'utf-8' }; obj-> title // 圈子标题 description // 圈子描述 is_page_end // 是否达到页尾 item_count // 总条数，可能为空，代表还没有得到 items-> // 文章集合 [0]-> // 第一篇 title // 文章标题 pubDate [...]]]></description>
			<content:encoded><![CDATA[<p>技巧:博客圈的json输出 in feedsky<br />
json: http://network.feedsky.com/test_fn/json?d=0&#038;c=15&#038;p=2&#038;e=gbk&#038;v=obj<br />
feedsky发布了新的博客圈系统，并提供了json输出的支持<br />
上面的代码就是我建的一个博客圈的<a href="http://network.feedsky.com/test_fn/json?d=0&#038;c=15&#038;p=2&#038;e=gbk&#038;v=obj">json输出</a>地址<br />
d代表是否输出描述<br />
c代表输出条数<br />
p代表输出的页面（json版的支持分页显示！）<br />
e代表输出的编码（建议使用utf-8或者gbk！）<br />
v代表输出的变量名<br />
比如这个<a href="http://network.feedsky.com/test_fn/json?d=0&#038;c=1&#038;p=1&#038;e=utf-8&#038;v=obj">地址</a>的内容 （http://network.feedsky.com/test_fn/json?d=0&#038;c=1&#038;p=1&#038;e=utf-8&#038;v=obj）<br />
稍微整理了下 <img src='http://blog.fallseir.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>
obj={
  title:'测试博客圈',
  description:'测试博客圈\ntesting...',
  is_page_end:'',
  item_count:'',
  items:[
    {title:'笔记:构建分页导航',
     pubDate:'Thu, 07 Jun 2007 16:32:13 +0800',
     link:'http://item.feedsky.com/~feedsky/fallseir/~1247382/7460200/1223971/1/item.html'
    }],
  encoding:'utf-8'
};
obj->
   title // 圈子标题
   description // 圈子描述
   is_page_end // 是否达到页尾
   item_count // 总条数，可能为空，代表还没有得到
   items-> // 文章集合
    [0]-> // 第一篇
      title // 文章标题
      pubDate // 发布时间
      description // 内容
      link // 链接
   encoding // 输出编码

一段用来输出的代码
function renderfeed(feed,box_id){
	if(typeof(box_id)=="string"){
		box=document.getElementById(box_id);
	}else{
		box=box_id;
	}
	html="";
	for(var i=0;i&lt;2;i++){
		var item=feed.items[i];
		html+='&lt;p style="margin-bottom:8px;">&lt;a href="'+item.link+'" class="t">'+item.title+"&lt;/a>&lt;br />";
		if(feed.items.length==1){
			if(item.description.length>150){
				item.description=item.description.substring(0,150)+"... ...";
			}
		}else{
			if(item.description.length>60){
				item.description=item.description.substring(0,60)+"... ...";
			}
		}
		html+=item.description;
		html+='&lt;span class="orange_12">&lt;/span> &lt;a href="'+item.link+'">&lt;/a>&lt;/p>&lt;br/>';
	}
	//html+="&lt;p>&nbsp;&lt;/p>";
	box.innerHTML=html;
	return 1;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2007/06/%e6%8a%80%e5%b7%a7%e5%8d%9a%e5%ae%a2%e5%9c%88%e7%9a%84json%e8%be%93%e5%87%ba-in-feedsky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
