<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>北漂IT民工的博客</title>
	
	<link>http://www.3gcnbeta.com/wordpress</link>
	<description>北漂IT民工的博客</description>
	<lastBuildDate>Tue, 18 Oct 2011 08:20:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/3gcnbeta/IfqM" /><feedburner:info uri="3gcnbeta/ifqm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>北漂IT民工的博客</itunes:subtitle><feedburner:emailServiceId>3gcnbeta/IfqM</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>nodejs 下post代码</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/AHkumUOBZtw/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/10/18/nodejs-%e4%b8%8bpost%e4%bb%a3%e7%a0%81/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 08:19:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1475</guid>
		<description><![CDATA[var options = { host: 'www.yourdomain.com', post: 80, method: 'POST', path: '/', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': params.length } }; var request = http.request(options, function(response) { response.setEncoding('utf8'); response.on('data', function(chunk) { console.log(chunk); }); }); request.write(params); request.end();]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/cv3prX7j12BuU2SANwDhfvHHh7o/0/da"><img src="http://feedads.g.doubleclick.net/~a/cv3prX7j12BuU2SANwDhfvHHh7o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cv3prX7j12BuU2SANwDhfvHHh7o/1/da"><img src="http://feedads.g.doubleclick.net/~a/cv3prX7j12BuU2SANwDhfvHHh7o/1/di" border="0" ismap="true"></img></a></p><pre class="js" name="code">
	var options = {
		host: 'www.yourdomain.com',
		post: 80,
		method: 'POST',
		path: '/',
		headers: {
			'Content-Type': 'application/x-www-form-urlencoded',
			'Content-Length': params.length
		}
	};

	var request = http.request(options, function(response) {
		response.setEncoding('utf8');
		response.on('data', function(chunk) {
			console.log(chunk);
		});
	});

 request.write(params);
 request.end();
</pre>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/AHkumUOBZtw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/10/18/nodejs-%e4%b8%8bpost%e4%bb%a3%e7%a0%81/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/10/18/nodejs-%e4%b8%8bpost%e4%bb%a3%e7%a0%81/</feedburner:origLink></item>
		<item>
		<title>Linux 下批量替换的命令</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/zB1Hf1NuPtg/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/10/18/linux-%e4%b8%8b%e6%89%b9%e9%87%8f%e6%9b%bf%e6%8d%a2%e7%9a%84%e5%91%bd%e4%bb%a4/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 08:17:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1473</guid>
		<description><![CDATA[将下面的代码放到一个shell文件a.sh里， sed -i “s/$2/$3/g” `grep -rl $2 $1` 然后执行: sh a.sh path param1 param2 path是路径名, param1是要替换的内容 param2是替换后的内容]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/UQwQCHkj9WC_IuwUFZ3ufDyOfIs/0/da"><img src="http://feedads.g.doubleclick.net/~a/UQwQCHkj9WC_IuwUFZ3ufDyOfIs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UQwQCHkj9WC_IuwUFZ3ufDyOfIs/1/da"><img src="http://feedads.g.doubleclick.net/~a/UQwQCHkj9WC_IuwUFZ3ufDyOfIs/1/di" border="0" ismap="true"></img></a></p><p>将下面的代码放到一个shell文件a.sh里，</p>
<p>sed -i “s/$2/$3/g” `grep -rl $2 $1`</p>
<p>然后执行:<br />
sh a.sh path param1 param2</p>
<p>path是路径名,<br />
param1是要替换的内容<br />
param2是替换后的内容</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/zB1Hf1NuPtg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/10/18/linux-%e4%b8%8b%e6%89%b9%e9%87%8f%e6%9b%bf%e6%8d%a2%e7%9a%84%e5%91%bd%e4%bb%a4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/10/18/linux-%e4%b8%8b%e6%89%b9%e9%87%8f%e6%9b%bf%e6%8d%a2%e7%9a%84%e5%91%bd%e4%bb%a4/</feedburner:origLink></item>
		<item>
		<title>Android的getSharedPreferences所具备的坑爹行为</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/xYJEdJ0Fk6s/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/08/27/android%e7%9a%84getsharedpreferences%e6%89%80%e5%85%b7%e5%a4%87%e7%9a%84%e5%9d%91%e7%88%b9%e8%a1%8c%e4%b8%ba/#comments</comments>
		<pubDate>Sat, 27 Aug 2011 04:01:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1470</guid>
		<description><![CDATA[坑爹的SharedPreferences 现象描述： 通过提供给js的接口来读取存在SharedPreferences里的字符串。 在JS里调用接口读出来一个字符: abc  = &#8216;abc&#8217;; 在js里执行: abc == &#8216;abc&#8217; 返回true 然后用 switch(abc) { case &#8216;abc&#8217;: //  这里永远进不去 break; } 如果先执行一下: abc = “” + abc 前面的switch就能进去。 坑爹！ &#160;]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/HerhIhUGaXt9vg9KlfkRlqDO6Fs/0/da"><img src="http://feedads.g.doubleclick.net/~a/HerhIhUGaXt9vg9KlfkRlqDO6Fs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HerhIhUGaXt9vg9KlfkRlqDO6Fs/1/da"><img src="http://feedads.g.doubleclick.net/~a/HerhIhUGaXt9vg9KlfkRlqDO6Fs/1/di" border="0" ismap="true"></img></a></p><p>坑爹的SharedPreferences</p>
<p>现象描述：</p>
<p>通过提供给js的接口来读取存在SharedPreferences里的字符串。</p>
<p>在JS里调用接口读出来一个字符:</p>
<p>abc  = &#8216;abc&#8217;;</p>
<p>在js里执行:</p>
<p>abc == &#8216;abc&#8217;</p>
<p>返回true</p>
<p>然后用</p>
<p>switch(abc)</p>
<p>{</p>
<p>case &#8216;abc&#8217;:</p>
<p>//  这里永远进不去</p>
<p>break;</p>
<p>}</p>
<p>如果先执行一下:</p>
<p>abc = “” + abc</p>
<p>前面的switch就能进去。</p>
<p>坑爹！</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/xYJEdJ0Fk6s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/08/27/android%e7%9a%84getsharedpreferences%e6%89%80%e5%85%b7%e5%a4%87%e7%9a%84%e5%9d%91%e7%88%b9%e8%a1%8c%e4%b8%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/08/27/android%e7%9a%84getsharedpreferences%e6%89%80%e5%85%b7%e5%a4%87%e7%9a%84%e5%9d%91%e7%88%b9%e8%a1%8c%e4%b8%ba/</feedburner:origLink></item>
		<item>
		<title>Nginx 下WordPress是配置,包括子目录时的配置</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/p4GQZErVyFc/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/05/17/nginx-%e4%b8%8bwordpress%e6%98%af%e9%85%8d%e7%bd%ae%e5%8c%85%e6%8b%ac%e5%ad%90%e7%9b%ae%e5%bd%95%e6%97%b6%e7%9a%84%e9%85%8d%e7%bd%ae/#comments</comments>
		<pubDate>Tue, 17 May 2011 06:04:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Woredpress]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1462</guid>
		<description><![CDATA[在你的其他配置项基础之上还需要添加下面的代码: server { #用于管理界面的处理 rewrite /wp-admin$ $scheme://$host$uri/ permanent; location / { #/wordpress是你的子目录名字,没有子目录就可以不用写 try_files $uri /wordpress$uri/ /wordpress/index.php?q=uri&#38;$args; } }]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/9Rl1gdSoGwQJelm8iRLrXWN8pDo/0/da"><img src="http://feedads.g.doubleclick.net/~a/9Rl1gdSoGwQJelm8iRLrXWN8pDo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/9Rl1gdSoGwQJelm8iRLrXWN8pDo/1/da"><img src="http://feedads.g.doubleclick.net/~a/9Rl1gdSoGwQJelm8iRLrXWN8pDo/1/di" border="0" ismap="true"></img></a></p><p>在你的其他配置项基础之上还需要添加下面的代码:</p>
<p>server {</p>
<p>#用于管理界面的处理<br />
rewrite /wp-admin$ $scheme://$host$uri/ permanent;</p>
<p>location / {</p>
<p>#/wordpress是你的子目录名字,没有子目录就可以不用写<br />
try_files $uri /wordpress$uri/ /wordpress/index.php?q=uri&amp;$args;<br />
}<br />
}</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/p4GQZErVyFc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/05/17/nginx-%e4%b8%8bwordpress%e6%98%af%e9%85%8d%e7%bd%ae%e5%8c%85%e6%8b%ac%e5%ad%90%e7%9b%ae%e5%bd%95%e6%97%b6%e7%9a%84%e9%85%8d%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/05/17/nginx-%e4%b8%8bwordpress%e6%98%af%e9%85%8d%e7%bd%ae%e5%8c%85%e6%8b%ac%e5%ad%90%e7%9b%ae%e5%bd%95%e6%97%b6%e7%9a%84%e9%85%8d%e7%bd%ae/</feedburner:origLink></item>
		<item>
		<title>查找字符并删除指定的行</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/UzHlfFiccEw/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/05/06/%e6%9f%a5%e6%89%be%e5%ad%97%e7%ac%a6%e5%b9%b6%e5%88%a0%e9%99%a4%e6%8c%87%e5%ae%9a%e7%9a%84%e8%a1%8c/#comments</comments>
		<pubDate>Fri, 06 May 2011 02:54:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1460</guid>
		<description><![CDATA[file=”a.txt” pattern=$1 repalcement=$2 lineNumber=$3 li=`cat $file &#124; grep -n $pattern &#124; sed s/:/\ / &#124; awk &#8216;{print$1}&#8217; &#124; sed -n ${lineNumber}p` li2=$((li)) echo $li2 sed “$li,${li}s/${pattern}/${repalcement}/” $file]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/or5yqHbbng5lGKrO5goiUK_ilPo/0/da"><img src="http://feedads.g.doubleclick.net/~a/or5yqHbbng5lGKrO5goiUK_ilPo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/or5yqHbbng5lGKrO5goiUK_ilPo/1/da"><img src="http://feedads.g.doubleclick.net/~a/or5yqHbbng5lGKrO5goiUK_ilPo/1/di" border="0" ismap="true"></img></a></p><p>file=”a.txt”<br />
pattern=$1<br />
repalcement=$2<br />
lineNumber=$3<br />
li=`cat $file | grep -n $pattern | sed s/:/\ / | awk &#8216;{print$1}&#8217; | sed -n ${lineNumber}p`<br />
li2=$((li))<br />
echo $li2<br />
sed “$li,${li}s/${pattern}/${repalcement}/” $file</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/UzHlfFiccEw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/05/06/%e6%9f%a5%e6%89%be%e5%ad%97%e7%ac%a6%e5%b9%b6%e5%88%a0%e9%99%a4%e6%8c%87%e5%ae%9a%e7%9a%84%e8%a1%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/05/06/%e6%9f%a5%e6%89%be%e5%ad%97%e7%ac%a6%e5%b9%b6%e5%88%a0%e9%99%a4%e6%8c%87%e5%ae%9a%e7%9a%84%e8%a1%8c/</feedburner:origLink></item>
		<item>
		<title>统计某一类文本文件的行数shell脚本</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/lCsWjUebz4c/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/04/26/%e7%bb%9f%e8%ae%a1%e6%9f%90%e4%b8%80%e7%b1%bb%e6%96%87%e6%9c%ac%e6%96%87%e4%bb%b6%e7%9a%84%e8%a1%8c%e6%95%b0shell%e8%84%9a%e6%9c%ac/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 10:09:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1458</guid>
		<description><![CDATA[find . -name “*.php” -type f &#124; xargs cat &#124; wc -l]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/_JzEIO2IaDypUWkXVMiT4ueL42k/0/da"><img src="http://feedads.g.doubleclick.net/~a/_JzEIO2IaDypUWkXVMiT4ueL42k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_JzEIO2IaDypUWkXVMiT4ueL42k/1/da"><img src="http://feedads.g.doubleclick.net/~a/_JzEIO2IaDypUWkXVMiT4ueL42k/1/di" border="0" ismap="true"></img></a></p><p>find . -name “*.php” -type f | xargs cat | wc -l</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/lCsWjUebz4c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/04/26/%e7%bb%9f%e8%ae%a1%e6%9f%90%e4%b8%80%e7%b1%bb%e6%96%87%e6%9c%ac%e6%96%87%e4%bb%b6%e7%9a%84%e8%a1%8c%e6%95%b0shell%e8%84%9a%e6%9c%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/04/26/%e7%bb%9f%e8%ae%a1%e6%9f%90%e4%b8%80%e7%b1%bb%e6%96%87%e6%9c%ac%e6%96%87%e4%bb%b6%e7%9a%84%e8%a1%8c%e6%95%b0shell%e8%84%9a%e6%9c%ac/</feedburner:origLink></item>
		<item>
		<title>找出包含有某个字符串的文件并加注释</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/os9CcD3IAbc/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/04/06/%e6%89%be%e5%87%ba%e5%8c%85%e5%90%ab%e6%9c%89%e6%9f%90%e4%b8%aa%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%9a%84%e6%96%87%e4%bb%b6%e5%b9%b6%e5%8a%a0%e6%b3%a8%e9%87%8a/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 09:04:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1455</guid>
		<description><![CDATA[将目录里的文件中包括有print的行全打上 //的开头的 linux命令是什么？ 答案： &#160; grep -Rlns print . &#124; xargs sed -i "s/^\(.*print.*\)$/\/\/\1/g"]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/4zcEzqcmDx3iIWy3fCSp7Lbjo6s/0/da"><img src="http://feedads.g.doubleclick.net/~a/4zcEzqcmDx3iIWy3fCSp7Lbjo6s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4zcEzqcmDx3iIWy3fCSp7Lbjo6s/1/da"><img src="http://feedads.g.doubleclick.net/~a/4zcEzqcmDx3iIWy3fCSp7Lbjo6s/1/di" border="0" ismap="true"></img></a></p><p>将目录里的文件中包括有print的行全打上<br />
//的开头的<br />
linux命令是什么？</p>
<p>答案：</p>
<p>&nbsp;</p>
<pre class="sh" name="code">
grep -Rlns print . | xargs sed -i "s/^\(.*print.*\)$/\/\/\1/g"
</pre>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/os9CcD3IAbc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/04/06/%e6%89%be%e5%87%ba%e5%8c%85%e5%90%ab%e6%9c%89%e6%9f%90%e4%b8%aa%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%9a%84%e6%96%87%e4%bb%b6%e5%b9%b6%e5%8a%a0%e6%b3%a8%e9%87%8a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/04/06/%e6%89%be%e5%87%ba%e5%8c%85%e5%90%ab%e6%9c%89%e6%9f%90%e4%b8%aa%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%9a%84%e6%96%87%e4%bb%b6%e5%b9%b6%e5%8a%a0%e6%b3%a8%e9%87%8a/</feedburner:origLink></item>
		<item>
		<title>Mysql开发的很强大的E-R图工具</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/7zFdIIXx8Mo/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/03/19/mysql%e5%bc%80%e5%8f%91%e7%9a%84%e5%be%88%e5%bc%ba%e5%a4%a7%e7%9a%84e-r%e5%9b%be%e5%b7%a5%e5%85%b7/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 16:39:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1451</guid>
		<description><![CDATA[MySQL Workbench 下载地址： http://www.mysql.com/downloads/workbench/ 操作很直观，很容易上手 &#160;]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/zqICmw-KuBqVcPdboIs7APfPo74/0/da"><img src="http://feedads.g.doubleclick.net/~a/zqICmw-KuBqVcPdboIs7APfPo74/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zqICmw-KuBqVcPdboIs7APfPo74/1/da"><img src="http://feedads.g.doubleclick.net/~a/zqICmw-KuBqVcPdboIs7APfPo74/1/di" border="0" ismap="true"></img></a></p><h1>MySQL Workbench</h1>
<p>下载地址：</p>
<p><a href="http://www.mysql.com/downloads/workbench/">http://www.mysql.com/downloads/workbench/</a></p>
<p>操作很直观，很容易上手</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/7zFdIIXx8Mo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/03/19/mysql%e5%bc%80%e5%8f%91%e7%9a%84%e5%be%88%e5%bc%ba%e5%a4%a7%e7%9a%84e-r%e5%9b%be%e5%b7%a5%e5%85%b7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/03/19/mysql%e5%bc%80%e5%8f%91%e7%9a%84%e5%be%88%e5%bc%ba%e5%a4%a7%e7%9a%84e-r%e5%9b%be%e5%b7%a5%e5%85%b7/</feedburner:origLink></item>
		<item>
		<title>对权限管理系统的一些思考</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/rW8lQrZETx4/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/03/08/%e5%af%b9%e6%9d%83%e9%99%90%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%9a%84%e4%b8%80%e4%ba%9b%e6%80%9d%e8%80%83/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 09:47:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WEB服务器技术]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1443</guid>
		<description><![CDATA[权限系统的设计看上去是一个比较复杂的设计。目前还没有非常明确并取得共识的系统设计方案。 下面主要是根据我对权限管理系统的理解进行一个系统设计方案的分析。 首先，权限的设置是围绕着人展开的，而人可以分成多种角色，而这些角色可以是位于不同的组织内。 这样我们就可以很自然感觉到：人，角色，组织都是跟权限相关的。 我们再进一步的思考，会发现一个权限系统主要考查的问题是： 谁在什么地方，对什么东西进行了什么操作。 (如果更复杂的话，还可以包含时限信息，等其它前件） 因为主要考虑的是人可以做什么，所以主要的包括的点是这几个。 简单一下，要点是四个： 谁， 地方， 东西， 操作。 所以我们要分析这些要件分别可能是什么，并且他们之间是什么关系。 谁，是一个执行者，那可能是一个用户，一个管理员，一个后台的编辑，也可能是一个特定的人群。因些谁我们至少可以用：用户，角色，组来将他们表示出来。 而用户可以用组与角色来组织起来。假设组是一种树状的垂直组织，那么角色就可以是一种平面的组织。因此他们是有必要共存的一种用户分类方式。 那么这些用户相关的分类应该如何组织起来的呢？ 就是涉及到了一些功能性的模块系统，比如用户管理系统，组织架构管理系统，员工管理系统。 通过组织架构管理系统，可以将用户与某些组织有效的组织起来。 但是一旦到了一个系统中，那么就必须要有一个资源的分配权限。 而资源一般都是跟一些结构，频道之类的东西相关的。 比如在组织架构管理系统里，组织本身就是一个资源，他包含创建，删除，更新组织的基本功能，还需要包含添加组成员，组长，副组长都角色的功能。 而这个组织本身又是这个组织结构的节点。 他本身会具有位置的信息，就是上面提到的地方的概念。 而组织的节点可以是一个人组成，也可以是一些角色组织。 如果管理层可能包含CEO，CFO，COO等等，只要给定了这个组织下的角色权限，那么不管指定谁是CEO，他就会具有CEO的权力。 所以我们可以得出来对于权限的管理，至少应该得到下面的几项关键数据： 组织架构/模块， 组织架构/模块的节点， 用户/角色， 用户/角色的标志符， 资源的类型， 资源的标志， 资源的动作标识 那么对应的，组织架构及其节点是我们所说的地方，用户/角色是我们所说的人，资源就是东西，动作标识是干什么。 这样就基本上定义了一个权限。 通过这种形式对权限进行组织，可以实现一个组织下，用户的权限非常细致的控制。 当然实现起来也会相对比较麻烦。 因为权限还会有一定的承继关系，用户，角色，组织权限的优先级关系，都会涉及到。 一般情况下，只要对一个用户设定组权限就可以了。 但是通过角色或者用户的特有权限设置，可以达到很精确的控制。]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/GI5bEfODzJzUJjZZ0hGsCrho_Pc/0/da"><img src="http://feedads.g.doubleclick.net/~a/GI5bEfODzJzUJjZZ0hGsCrho_Pc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GI5bEfODzJzUJjZZ0hGsCrho_Pc/1/da"><img src="http://feedads.g.doubleclick.net/~a/GI5bEfODzJzUJjZZ0hGsCrho_Pc/1/di" border="0" ismap="true"></img></a></p><p>权限系统的设计看上去是一个比较复杂的设计。目前还没有非常明确并取得共识的系统设计方案。<br />
下面主要是根据我对权限管理系统的理解进行一个系统设计方案的分析。<br />
首先，权限的设置是围绕着人展开的，而人可以分成多种角色，而这些角色可以是位于不同的组织内。<br />
这样我们就可以很自然感觉到：人，角色，组织都是跟权限相关的。<br />
我们再进一步的思考，会发现一个权限系统主要考查的问题是：<br />
谁在什么地方，对什么东西进行了什么操作。 (如果更复杂的话，还可以包含时限信息，等其它前件）</p>
<p>因为主要考虑的是人可以做什么，所以主要的包括的点是这几个。<br />
简单一下，要点是四个： 谁， 地方， 东西， 操作。<br />
所以我们要分析这些要件分别可能是什么，并且他们之间是什么关系。<br />
谁，是一个执行者，那可能是一个用户，一个管理员，一个后台的编辑，也可能是一个特定的人群。因些谁我们至少可以用：用户，角色，组来将他们表示出来。<br />
而用户可以用组与角色来组织起来。假设组是一种树状的垂直组织，那么角色就可以是一种平面的组织。因此他们是有必要共存的一种用户分类方式。</p>
<p>那么这些用户相关的分类应该如何组织起来的呢？</p>
<p>就是涉及到了一些功能性的模块系统，比如用户管理系统，组织架构管理系统，员工管理系统。</p>
<p>通过组织架构管理系统，可以将用户与某些组织有效的组织起来。<br />
但是一旦到了一个系统中，那么就必须要有一个资源的分配权限。</p>
<p>而资源一般都是跟一些结构，频道之类的东西相关的。</p>
<p>比如在组织架构管理系统里，组织本身就是一个资源，他包含创建，删除，更新组织的基本功能，还需要包含添加组成员，组长，副组长都角色的功能。</p>
<p>而这个组织本身又是这个组织结构的节点。</p>
<p>他本身会具有位置的信息，就是上面提到的地方的概念。</p>
<p>而组织的节点可以是一个人组成，也可以是一些角色组织。</p>
<p>如果管理层可能包含CEO，CFO，COO等等，只要给定了这个组织下的角色权限，那么不管指定谁是CEO，他就会具有CEO的权力。</p>
<p>所以我们可以得出来对于权限的管理，至少应该得到下面的几项关键数据：<br />
组织架构/模块， 组织架构/模块的节点， 用户/角色， 用户/角色的标志符， 资源的类型， 资源的标志， 资源的动作标识</p>
<p>那么对应的，组织架构及其节点是我们所说的地方，用户/角色是我们所说的人，资源就是东西，动作标识是干什么。</p>
<p>这样就基本上定义了一个权限。</p>
<p>通过这种形式对权限进行组织，可以实现一个组织下，用户的权限非常细致的控制。</p>
<p>当然实现起来也会相对比较麻烦。</p>
<p>因为权限还会有一定的承继关系，用户，角色，组织权限的优先级关系，都会涉及到。</p>
<p>一般情况下，只要对一个用户设定组权限就可以了。</p>
<p>但是通过角色或者用户的特有权限设置，可以达到很精确的控制。</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/rW8lQrZETx4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/03/08/%e5%af%b9%e6%9d%83%e9%99%90%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%9a%84%e4%b8%80%e4%ba%9b%e6%80%9d%e8%80%83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/03/08/%e5%af%b9%e6%9d%83%e9%99%90%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%9a%84%e4%b8%80%e4%ba%9b%e6%80%9d%e8%80%83/</feedburner:origLink></item>
		<item>
		<title>__autoload + singleton 改进思路</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/A14LyGRxza8/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2011/02/28/__autoload-singleton-%e6%94%b9%e8%bf%9b%e6%80%9d%e8%b7%af/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 11:24:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[WEB服务器技术]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1440</guid>
		<description><![CDATA[看到公司的Singleton实例很痛苦的每次都实现一个instance函数。我感觉很麻烦。 下面我基于减少instance函数的观点出发，做一个实验。 目标是用以实现一个可以省掉重复定义函数的基类。 下面是我的代码 文件组织： /home/eric/phptest/ &#124;-Application.php &#124;-index.php &#124;-Session.php `-Singleton.php 1. Singleton文件： 所有Singleton的基类 &#60;?php abstract class Singleton { static private $instances = array(); public static function getIntance($class) { if(!array_key_exists($class, self::$instances) &#124;&#124; !isset(self::$instances[$class])) { self::$instances[$class] = new $class(); } return self::$instances[$class]; } abstract public function instance(); }; ?&#62; 2. 两个Singleton模式类的测试文件： a) Session.php &#60;?php class Session extends [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/EULoFGPUGWlxIkeSHlsQQjGE0tk/0/da"><img src="http://feedads.g.doubleclick.net/~a/EULoFGPUGWlxIkeSHlsQQjGE0tk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EULoFGPUGWlxIkeSHlsQQjGE0tk/1/da"><img src="http://feedads.g.doubleclick.net/~a/EULoFGPUGWlxIkeSHlsQQjGE0tk/1/di" border="0" ismap="true"></img></a></p><p>看到公司的Singleton实例很痛苦的每次都实现一个instance函数。我感觉很麻烦。</p>
<p>下面我基于减少instance函数的观点出发，做一个实验。</p>
<p>目标是用以实现一个可以省掉重复定义函数的基类。</p>
<p>下面是我的代码</p>
<div id="_mcePaste">文件组织：</div>
<div id="_mcePaste">/home/eric/phptest/</div>
<div id="_mcePaste">|-Application.php</div>
<div id="_mcePaste">|-index.php</div>
<div id="_mcePaste">|-Session.php</div>
<div id="_mcePaste">`-Singleton.php</div>
<div></div>
<div id="_mcePaste">1. Singleton文件：</div>
<div id="_mcePaste">所有Singleton的基类</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">abstract class Singleton {</div>
<div id="_mcePaste">static private $instances = array();</div>
<div id="_mcePaste">public static function getIntance($class) {</div>
<div id="_mcePaste">if(!array_key_exists($class, self::$instances) || !isset(self::$instances[$class])) {</div>
<div id="_mcePaste">self::$instances[$class] = new $class();</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">return self::$instances[$class];</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">abstract public function instance();</div>
<div id="_mcePaste">};</div>
<div id="_mcePaste">?&gt;</div>
<div id="_mcePaste">2. 两个Singleton模式类的测试文件：</div>
<div id="_mcePaste">a) Session.php</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">class Session extends Singleton {</div>
<div id="_mcePaste">public function instance() {</div>
<div id="_mcePaste">return self::getIntance(__CLASS__);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">?&gt;</div>
<div id="_mcePaste">b) Application.php</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">class Application extends Singleton {</div>
<div id="_mcePaste">public function instance() {</div>
<div id="_mcePaste">return self::getIntance(__CLASS__);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">?&gt;</div>
<div></div>
<div id="_mcePaste">3. __autoload函数文件：</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">function __autoload($class) {</div>
<div id="_mcePaste">include $class . “.php”;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">var_dump(Session::instance());</div>
<div id="_mcePaste">var_dump(Application::instance());</div>
<div id="_mcePaste">?&gt;</div>
<div></div>
<div id="_mcePaste">4.返回结果：</div>
<div id="_mcePaste">object(Session)#1 (0) {</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">object(Application)#2 (0) {</div>
<div id="_mcePaste">}</div>
<div></div>
<div id="_mcePaste">5.成功。</div>
<div id="_mcePaste"></div>
<div>说明：</div>
<div id="_mcePaste">通过定义Singleton父类与利用__autoload来简化一下Singleton子类的实现方式</div>
<div id="_mcePaste">当然我们还是可以不将Singleton写成是抽象类的。</div>
<div id="_mcePaste">直接通过getInstance处传入类名来实现。</div>
<div id="_mcePaste">这样就可以方便子类的实现。不需要每个类都定义一个相同的函数 instance();</div>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/A14LyGRxza8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2011/02/28/__autoload-singleton-%e6%94%b9%e8%bf%9b%e6%80%9d%e8%b7%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2011/02/28/__autoload-singleton-%e6%94%b9%e8%bf%9b%e6%80%9d%e8%b7%af/</feedburner:origLink></item>
		<item>
		<title>Google App Engine Channel API 初体验</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/sy9_WFAft2s/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/12/18/google-app-engine-channel-api-%e5%88%9d%e4%bd%93%e9%aa%8c/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 12:18:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[WEB前沿]]></category>
		<category><![CDATA[Comet]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1436</guid>
		<description><![CDATA[1. channel api的id分成key与channel api channel api是给客户端的，对于服务器没有什么用。 而key是服务器端的，服务器只要有key就可以了 流程大约是这样 a)创建 key = md5(str).hexdigest() #要限制在64位以内 channel_id = channel.create_channel(key) b) 然后 channel.send_message(key, message) 发送消息 c) 在客户端的注意点是message发出去后，在javascript端也是一个对象。 内容需要通过得到的对象data.data来得到发送的字符串。 2. 在SDK上并没有使用comet技术，而是使用了polling,不断的从服务器取数据。 3. channel api 现在没有状态，无法知道如何客户端是不是已经断开。]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/obl-b51RYWbACPfQ92eY9jnzMk4/0/da"><img src="http://feedads.g.doubleclick.net/~a/obl-b51RYWbACPfQ92eY9jnzMk4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/obl-b51RYWbACPfQ92eY9jnzMk4/1/da"><img src="http://feedads.g.doubleclick.net/~a/obl-b51RYWbACPfQ92eY9jnzMk4/1/di" border="0" ismap="true"></img></a></p><p>1. channel api的id分成key与channel api<br />
channel api是给客户端的，对于服务器没有什么用。<br />
而key是服务器端的，服务器只要有key就可以了</p>
<p>流程大约是这样<br />
a)创建<br />
key = md5(str).hexdigest()    #要限制在64位以内<br />
channel_id = channel.create_channel(key)<br />
b)<br />
然后<br />
channel.send_message(key, message) 发送消息<br />
c)<br />
在客户端的注意点是message发出去后，在javascript端也是一个对象。<br />
内容需要通过得到的对象data.data来得到发送的字符串。</p>
<p>2. 在SDK上并没有使用comet技术，而是使用了polling,不断的从服务器取数据。</p>
<p>3. channel api 现在没有状态，无法知道如何客户端是不是已经断开。</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/sy9_WFAft2s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/12/18/google-app-engine-channel-api-%e5%88%9d%e4%bd%93%e9%aa%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/12/18/google-app-engine-channel-api-%e5%88%9d%e4%bd%93%e9%aa%8c/</feedburner:origLink></item>
		<item>
		<title>天下乌鸦一般黑啊</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/L8FgVajuV70/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/12/07/%e5%a4%a9%e4%b8%8b%e4%b9%8c%e9%b8%a6%e4%b8%80%e8%88%ac%e9%bb%91%e5%95%8a/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 11:43:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[杂谈]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1430</guid>
		<description><![CDATA[本站被Google屏幕了，还好这个博客一般情况下是个人使用的。 但是我想不明白为什么。我这样的博客还有什么可屏蔽的？ 不是政治，不是商业。]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/pTP2uK177UZ9y3ZFCV3T4jPiEaM/0/da"><img src="http://feedads.g.doubleclick.net/~a/pTP2uK177UZ9y3ZFCV3T4jPiEaM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/pTP2uK177UZ9y3ZFCV3T4jPiEaM/1/da"><img src="http://feedads.g.doubleclick.net/~a/pTP2uK177UZ9y3ZFCV3T4jPiEaM/1/di" border="0" ismap="true"></img></a></p><p>本站被Google屏幕了，还好这个博客一般情况下是个人使用的。</p>
<p>但是我想不明白为什么。我这样的博客还有什么可屏蔽的？</p>
<p>不是政治，不是商业。</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/L8FgVajuV70" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/12/07/%e5%a4%a9%e4%b8%8b%e4%b9%8c%e9%b8%a6%e4%b8%80%e8%88%ac%e9%bb%91%e5%95%8a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/12/07/%e5%a4%a9%e4%b8%8b%e4%b9%8c%e9%b8%a6%e4%b8%80%e8%88%ac%e9%bb%91%e5%95%8a/</feedburner:origLink></item>
		<item>
		<title>javascript  字符转化成整数</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/9F4jUF5dhNY/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/12/05/javascript-%e5%ad%97%e7%ac%a6%e8%bd%ac%e5%8c%96%e6%88%90%e6%95%b4%e6%95%b0/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 07:44:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1427</guid>
		<description><![CDATA[1. 使用函数parseInt将字符串转化成整数 2.转化成整数的规则 a) 字符开头是整数，节取开头的数字： var num = parseInt(&#8217;300day&#8217;);  //结果是300 b) 开头不是整数，返回NaN（英文Not a Number的缩写，表示不是数字） var num = parseInt(&#8216;apple&#8217;); //结果是NaN c) 能识别字面量的八进制与十六进制 var num = parseInt(&#8217;0xF&#8217;);  //结果是15 var num = parseInt(&#8217;034&#8242;); //结果是28,而不是34 d)无法识别小数点 var num = parseInt(&#8216;.5&#8242;); //结果是NaN var num = parseInt(&#8217;2.5&#8242;); //结果是2 f)可以指定字符串的基数（默认是10） var num = parseInt(&#8216;ab&#8217;); //结果是NaN var num = parseInt(&#8216;ab&#8217;, 16); //结果是171]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/F5Hvmei__tQuxGgC2XoEuramGMU/0/da"><img src="http://feedads.g.doubleclick.net/~a/F5Hvmei__tQuxGgC2XoEuramGMU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/F5Hvmei__tQuxGgC2XoEuramGMU/1/da"><img src="http://feedads.g.doubleclick.net/~a/F5Hvmei__tQuxGgC2XoEuramGMU/1/di" border="0" ismap="true"></img></a></p><p>1. 使用函数parseInt将字符串转化成整数</p>
<p>2.转化成整数的规则</p>
<p>a) 字符开头是整数，节取开头的数字：</p>
<p>var num = parseInt(&#8217;300day&#8217;);  //结果是300</p>
<p>b) 开头不是整数，返回NaN（英文Not a Number的缩写，表示不是数字）</p>
<p>var num = parseInt(&#8216;apple&#8217;); //结果是NaN</p>
<p>c) 能识别字面量的八进制与十六进制</p>
<p>var num = parseInt(&#8217;0xF&#8217;);  //结果是15</p>
<p>var num = parseInt(&#8217;034&#8242;); //结果是28,而不是34</p>
<p>d)无法识别小数点</p>
<p>var num = parseInt(&#8216;.5&#8242;); //结果是NaN</p>
<p>var num = parseInt(&#8217;2.5&#8242;); //结果是2</p>
<p>f)可以指定字符串的基数（默认是10）</p>
<p>var num = parseInt(&#8216;ab&#8217;); //结果是NaN</p>
<p>var num = parseInt(&#8216;ab&#8217;, 16); //结果是171</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/9F4jUF5dhNY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/12/05/javascript-%e5%ad%97%e7%ac%a6%e8%bd%ac%e5%8c%96%e6%88%90%e6%95%b4%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/12/05/javascript-%e5%ad%97%e7%ac%a6%e8%bd%ac%e5%8c%96%e6%88%90%e6%95%b4%e6%95%b0/</feedburner:origLink></item>
		<item>
		<title>Appengine 非本机访问测试</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/oSZ-45yt0G0/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/12/04/appengine-%e9%9d%9e%e6%9c%ac%e6%9c%ba%e8%ae%bf%e9%97%ae%e6%b5%8b%e8%af%95/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 04:40:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[WEB服务器技术]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1425</guid>
		<description><![CDATA[App Engine （Python)在本地测试运行时， 默认绑定了localhost 所以当你想要通过虚拟机或者其它机器访问你的程序时就会出问题无法访问的情况。 其实只要有点IP基础知识的人就可以想到将IP换成是0.0.0.0就可以让服务与IP无关。 所以我们可以在运行时加上以下的参数： &#8211;address=0.0.0.0 这样就可以让不同的IP都能访问到。 当然也可以添加成： &#8211;address=192.168.1.1 仅限于局域网内访问。 总之只要你对IP绑定的原理有一些了解就可以帮助你更好的完成测试。]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Hc8IQmSVOtaKwljFjMsMU7MVy8w/0/da"><img src="http://feedads.g.doubleclick.net/~a/Hc8IQmSVOtaKwljFjMsMU7MVy8w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Hc8IQmSVOtaKwljFjMsMU7MVy8w/1/da"><img src="http://feedads.g.doubleclick.net/~a/Hc8IQmSVOtaKwljFjMsMU7MVy8w/1/di" border="0" ismap="true"></img></a></p><p>App Engine （Python)在本地测试运行时， 默认绑定了localhost 所以当你想要通过虚拟机或者其它机器访问你的程序时就会出问题无法访问的情况。</p>
<p>其实只要有点IP基础知识的人就可以想到将IP换成是0.0.0.0就可以让服务与IP无关。</p>
<p>所以我们可以在运行时加上以下的参数：</p>
<p>&#8211;address=0.0.0.0</p>
<p>这样就可以让不同的IP都能访问到。</p>
<p>当然也可以添加成：</p>
<p>&#8211;address=192.168.1.1</p>
<p>仅限于局域网内访问。</p>
<p>总之只要你对IP绑定的原理有一些了解就可以帮助你更好的完成测试。</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/oSZ-45yt0G0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/12/04/appengine-%e9%9d%9e%e6%9c%ac%e6%9c%ba%e8%ae%bf%e9%97%ae%e6%b5%8b%e8%af%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/12/04/appengine-%e9%9d%9e%e6%9c%ac%e6%9c%ba%e8%ae%bf%e9%97%ae%e6%b5%8b%e8%af%95/</feedburner:origLink></item>
		<item>
		<title>Python的缩进引起的BUG</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/_lW8QRdp52s/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/12/03/python%e7%9a%84%e7%bc%a9%e8%bf%9b%e5%bc%95%e8%b5%b7%e7%9a%84bug/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 06:57:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1415</guid>
		<description><![CDATA[if module == 'modify': user = self.getUser() temp = { 'name': user.username, 'contact': user.contact, 'email': user.email, 'intro': user.intro } self.display('user_modify.html', temp) return 当我把 temp的}向外移动两格后，后面添加的两行竟然同样可以执行。 导致了一些莫名其妙的结果。。 而这个if又是写在最后的。 python的缩进，永远的话题!]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/PUNa674idddmgjXo0LSgm_ALvFw/0/da"><img src="http://feedads.g.doubleclick.net/~a/PUNa674idddmgjXo0LSgm_ALvFw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PUNa674idddmgjXo0LSgm_ALvFw/1/da"><img src="http://feedads.g.doubleclick.net/~a/PUNa674idddmgjXo0LSgm_ALvFw/1/di" border="0" ismap="true"></img></a></p><pre name="code" class="py">
      if module == 'modify':
        user = self.getUser()
        temp = {
        'name': user.username,
        'contact': user.contact,
        'email': user.email,
        'intro': user.intro
      }
      self.display('user_modify.html', temp)
      return
</pre>
<p>当我把 temp的}向外移动两格后，后面添加的两行竟然同样可以执行。<br />
导致了一些莫名其妙的结果。。<br />
而这个if又是写在最后的。<br />
python的缩进，永远的话题!</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/_lW8QRdp52s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/12/03/python%e7%9a%84%e7%bc%a9%e8%bf%9b%e5%bc%95%e8%b5%b7%e7%9a%84bug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/12/03/python%e7%9a%84%e7%bc%a9%e8%bf%9b%e5%bc%95%e8%b5%b7%e7%9a%84bug/</feedburner:origLink></item>
		<item>
		<title>软件开发历史上的几大谎言</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/ofzsfm-nFr8/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/10/23/%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e5%8e%86%e5%8f%b2%e4%b8%8a%e7%9a%84%e5%87%a0%e5%a4%a7%e8%b0%8e%e8%a8%80/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 08:17:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[民工观点]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1412</guid>
		<description><![CDATA[1.暴布开发（试图在开发前确定全部需求） 2.UML（试图用一个图形化语言代替真实的代码） 3.XHTML (试图让设计人员写出完全正确的HTML代码）]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/jIE5_5wRhWhDjke0RLtOGhoRZOw/0/da"><img src="http://feedads.g.doubleclick.net/~a/jIE5_5wRhWhDjke0RLtOGhoRZOw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jIE5_5wRhWhDjke0RLtOGhoRZOw/1/da"><img src="http://feedads.g.doubleclick.net/~a/jIE5_5wRhWhDjke0RLtOGhoRZOw/1/di" border="0" ismap="true"></img></a></p><p>1.暴布开发（试图在开发前确定全部需求）<br />
2.UML（试图用一个图形化语言代替真实的代码）<br />
3.XHTML (试图让设计人员写出完全正确的HTML代码）</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/ofzsfm-nFr8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/10/23/%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e5%8e%86%e5%8f%b2%e4%b8%8a%e7%9a%84%e5%87%a0%e5%a4%a7%e8%b0%8e%e8%a8%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/10/23/%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e5%8e%86%e5%8f%b2%e4%b8%8a%e7%9a%84%e5%87%a0%e5%a4%a7%e8%b0%8e%e8%a8%80/</feedburner:origLink></item>
		<item>
		<title>ln创建目录链接所出现的问题。</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/l65RLrzTXoM/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/10/22/ln%e5%88%9b%e5%bb%ba%e7%9b%ae%e5%bd%95%e9%93%be%e6%8e%a5%e6%89%80%e5%87%ba%e7%8e%b0%e7%9a%84%e9%97%ae%e9%a2%98%e3%80%82/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 06:38:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1410</guid>
		<description><![CDATA[在当前非root用户下,使用命令 ln -s dir1 dir2 能进入dir2 但是 不同的用户时ln -s dir1 dir2 就无法进入dir2 解决的办法是将两个目录的用户属性设置成一致。 a. 对于root账号的目录，我们可以将本地(非root)的目录修改成root.root属性, 同时让目录可以为其它用户所修改 chown -R root.root localdir chmod -R 777 localdir b. 对于非root的目录,可以尝试 chown -R eric.eric localdir chmod -R 777 localdir]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/mOzHyPBGFU_BbVbMO9YwnESDyxM/0/da"><img src="http://feedads.g.doubleclick.net/~a/mOzHyPBGFU_BbVbMO9YwnESDyxM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mOzHyPBGFU_BbVbMO9YwnESDyxM/1/da"><img src="http://feedads.g.doubleclick.net/~a/mOzHyPBGFU_BbVbMO9YwnESDyxM/1/di" border="0" ismap="true"></img></a></p><p>在当前非root用户下,使用命令<br />
ln -s dir1 dir2<br />
能进入dir2<br />
但是<br />
不同的用户时ln -s dir1 dir2 就无法进入dir2</p>
<p>解决的办法是将两个目录的用户属性设置成一致。<br />
a. 对于root账号的目录，我们可以将本地(非root)的目录修改成root.root属性, 同时让目录可以为其它用户所修改<br />
chown -R root.root localdir<br />
chmod -R 777 localdir<br />
b. 对于非root的目录,可以尝试<br />
chown -R eric.eric localdir<br />
chmod -R 777 localdir</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/l65RLrzTXoM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/10/22/ln%e5%88%9b%e5%bb%ba%e7%9b%ae%e5%bd%95%e9%93%be%e6%8e%a5%e6%89%80%e5%87%ba%e7%8e%b0%e7%9a%84%e9%97%ae%e9%a2%98%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/10/22/ln%e5%88%9b%e5%bb%ba%e7%9b%ae%e5%bd%95%e9%93%be%e6%8e%a5%e6%89%80%e5%87%ba%e7%8e%b0%e7%9a%84%e9%97%ae%e9%a2%98%e3%80%82/</feedburner:origLink></item>
		<item>
		<title>网络编程中Socket与HTTP，TCP，UDP的区别</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/c__BPk-rPuQ/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/10/22/%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e4%b8%adsocket%e4%b8%8ehttp%ef%bc%8ctcp%ef%bc%8cudp%e7%9a%84%e5%8c%ba%e5%88%ab/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 01:33:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WEB服务器技术]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1404</guid>
		<description><![CDATA[Socket的英文意思是插座。 就是有几个孔的固定的插座。 用电器插入后就能得到电能提供他所能提供的服务了。 对应到网络上，Socket（插座）里包含了你所启动的服务（类似于插座对应的电能），而孔就是所对应的端口。 通过端口，客户端就可以访问你所提供的服务。 当然客户端要找到你的服务，在TCP/IP协议族下通常的办法是通过IP协议来得到。 所以Socket是网络协议连接所使用的一种方式，不是协议。 HTTP，TCP，UDP都是一种协议。 TCP,UDP都是基于Socket的连接方式的协议。 所以讲Socket编程基本就是指用TCP/UDP进行编程。 但是这是一种不明确的说法。 要明确讲就要用TCP/UDP/HTTP。 Socket是大部分语言对TCP/UDP封装时所使用的名字。 如果不明确他的意义，将很容易造成困扰。 比如很多程序员以为Socket编程就是TCP编程。 如果不是很明确，可以到国外的论坛上看看。 理解Socket的明确含义。]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Qcu1jHWpBtWDjIuYqf8ZuMk2mWM/0/da"><img src="http://feedads.g.doubleclick.net/~a/Qcu1jHWpBtWDjIuYqf8ZuMk2mWM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Qcu1jHWpBtWDjIuYqf8ZuMk2mWM/1/da"><img src="http://feedads.g.doubleclick.net/~a/Qcu1jHWpBtWDjIuYqf8ZuMk2mWM/1/di" border="0" ismap="true"></img></a></p><p>Socket的英文意思是插座。</p>
<p>就是有几个孔的固定的插座。</p>
<p>用电器插入后就能得到电能提供他所能提供的服务了。</p>
<p>对应到网络上，Socket（插座）里包含了你所启动的服务（类似于插座对应的电能），而孔就是所对应的端口。</p>
<p>通过端口，客户端就可以访问你所提供的服务。</p>
<p>当然客户端要找到你的服务，在TCP/IP协议族下通常的办法是通过IP协议来得到。</p>
<p>所以Socket是网络协议连接所使用的一种方式，不是协议。</p>
<p>HTTP，TCP，UDP都是一种协议。</p>
<p>TCP,UDP都是基于Socket的连接方式的协议。</p>
<p>所以讲Socket编程基本就是指用TCP/UDP进行编程。</p>
<p>但是这是一种不明确的说法。</p>
<p>要明确讲就要用TCP/UDP/HTTP。</p>
<p>Socket是大部分语言对TCP/UDP封装时所使用的名字。</p>
<p>如果不明确他的意义，将很容易造成困扰。</p>
<p>比如很多程序员以为Socket编程就是TCP编程。</p>
<p>如果不是很明确，可以到国外的论坛上看看。</p>
<p>理解Socket的明确含义。</p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/c__BPk-rPuQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/10/22/%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e4%b8%adsocket%e4%b8%8ehttp%ef%bc%8ctcp%ef%bc%8cudp%e7%9a%84%e5%8c%ba%e5%88%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/10/22/%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e4%b8%adsocket%e4%b8%8ehttp%ef%bc%8ctcp%ef%bc%8cudp%e7%9a%84%e5%8c%ba%e5%88%ab/</feedburner:origLink></item>
		<item>
		<title>Ubuntu 10.04 下使用 Ubuntu 10.10 版的fcitx</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/5AaFFVs5dS8/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/10/19/ubuntu-10-04-%e4%b8%8b%e4%bd%bf%e7%94%a8-ubuntu-10-10-%e7%89%88%e7%9a%84fcitx/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 23:19:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1405</guid>
		<description><![CDATA[由于fcitx的debian包在10.04时字符的编码并不是UTF-8,所以经常需要手动配置才能正确显示， 但是fcitx 在Ubuntu 10.10后采用的是fcitx_3.6.3-1，字符串已经开始使用UTF-8了。默认情况下显然的不再是方框了。 其实10.04下我们同样可以使用 fcitx 的deb包, 因为都是使用的Debian的包，依赖关系也很简单。 安装方法与其它的deb包安装方式没有任何差别 根据下面的软件地址直接在Ubuntu 10.04里安装就OK。 （打开下面的地址后点击下面的任何的镜象地址下载即可） i386： http://packages.debian.org/zh-cn/sid/i386/fcitx/download AMD64: http://packages.debian.org/zh-cn/sid/amd64/fcitx/download]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/e8RwUn-ywOSZdVwfJQL_InloVIc/0/da"><img src="http://feedads.g.doubleclick.net/~a/e8RwUn-ywOSZdVwfJQL_InloVIc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/e8RwUn-ywOSZdVwfJQL_InloVIc/1/da"><img src="http://feedads.g.doubleclick.net/~a/e8RwUn-ywOSZdVwfJQL_InloVIc/1/di" border="0" ismap="true"></img></a></p><p>由于fcitx的debian包在10.04时字符的编码并不是UTF-8,所以经常需要手动配置才能正确显示，</p>
<p>但是fcitx 在Ubuntu 10.10后采用的是fcitx_3.6.3-1，字符串已经开始使用UTF-8了。默认情况下显然的不再是方框了。</p>
<p>其实10.04下我们同样可以使用 fcitx 的deb包, 因为都是使用的Debian的包，依赖关系也很简单。</p>
<p>安装方法与其它的deb包安装方式没有任何差别</p>
<p>根据下面的软件地址直接在Ubuntu 10.04里安装就OK。</p>
<p>（打开下面的地址后点击下面的任何的镜象地址下载即可）</p>
<p>i386：</p>
<p><a href="http://packages.debian.org/zh-cn/sid/i386/fcitx/download">http://packages.debian.org/zh-cn/sid/i386/fcitx/download</a></p>
<p>AMD64:</p>
<p><a href="http://packages.debian.org/zh-cn/sid/amd64/fcitx/download">http://packages.debian.org/zh-cn/sid/amd64/fcitx/download</a></p>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/5AaFFVs5dS8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/10/19/ubuntu-10-04-%e4%b8%8b%e4%bd%bf%e7%94%a8-ubuntu-10-10-%e7%89%88%e7%9a%84fcitx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/10/19/ubuntu-10-04-%e4%b8%8b%e4%bd%bf%e7%94%a8-ubuntu-10-10-%e7%89%88%e7%9a%84fcitx/</feedburner:origLink></item>
		<item>
		<title>Drupal 菜单的读取方法</title>
		<link>http://feedproxy.google.com/~r/3gcnbeta/IfqM/~3/wBZNb6hgwoc/</link>
		<comments>http://www.3gcnbeta.com/wordpress/2010/10/08/drupal-%e8%8f%9c%e5%8d%95%e7%9a%84%e8%af%bb%e5%8f%96%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 07:22:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[drupal]]></category>
		<category><![CDATA[WEB服务器技术]]></category>

		<guid isPermaLink="false">http://www.3gcnbeta.com/wordpress/?p=1396</guid>
		<description><![CDATA[1. 通过menu_tree_all_data来读取相应的菜单项 primary-links来读取基本菜单。 也可以读取自定义的菜单。 2. 通过$m['below']来得到是不是有子菜单 &#60;ul&#62; &#60;?php $i = 0; $menuItems = menu_tree_all_data(&#8216;primary-links&#8217;); foreach($menuItems as $key =&#62; $m): ?&#62; &#60;li&#62; &#60;?php $href = drupal_get_path_alias($m['link']['link_path']); $newhref = $href == &#8216;/&#8217; ? $href : &#8216;/&#8217; . $href; $isactive = is_active_menu($newhref); if ($isactive) { print “&#60;a href=&#8217;” . $dir . $href . “&#8216; id=&#8217;navbar$i&#8217; class=&#8217;hover&#8217; onmouseover=\”showMenu(&#8216;navbar$i&#8217;, &#8216;subnav$i&#8217;)\” [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Ry7dIjkqANJ_SAm54dvPcTMC2J0/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ry7dIjkqANJ_SAm54dvPcTMC2J0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ry7dIjkqANJ_SAm54dvPcTMC2J0/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ry7dIjkqANJ_SAm54dvPcTMC2J0/1/di" border="0" ismap="true"></img></a></p><p>1. 通过menu_tree_all_data来读取相应的菜单项<br />
primary-links来读取基本菜单。<br />
也可以读取自定义的菜单。<br />
2. 通过$m['below']来得到是不是有子菜单</p>
<div id="_mcePaste">&lt;ul&gt;</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">$i = 0;</div>
<div id="_mcePaste">$menuItems = menu_tree_all_data(&#8216;primary-links&#8217;);</div>
<div id="_mcePaste">foreach($menuItems as $key =&gt; $m):</div>
<div id="_mcePaste">?&gt;</div>
<div id="_mcePaste">&lt;li&gt;</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">$href = drupal_get_path_alias($m['link']['link_path']);</div>
<div id="_mcePaste">$newhref = $href == &#8216;/&#8217; ? $href : &#8216;/&#8217; . $href;</div>
<div id="_mcePaste">$isactive = is_active_menu($newhref);</div>
<div id="_mcePaste">if ($isactive) {</div>
<div id="_mcePaste">print “&lt;a href=&#8217;” . $dir . $href . “&#8216; id=&#8217;navbar$i&#8217; class=&#8217;hover&#8217; onmouseover=\”showMenu(&#8216;navbar$i&#8217;, &#8216;subnav$i&#8217;)\” onFocus=\”this.blur()\”&gt;&lt;!&#8211;{$m['link']['title']}&#8211;&gt;&lt;/a&gt;”;</div>
<div id="_mcePaste">} else {</div>
<div id="_mcePaste">print “&lt;a href=&#8217;” . $dir . $href . “&#8216; id=&#8217;navbar$i&#8217; onmouseover=\”showMenu(&#8216;navbar$i&#8217;, &#8216;subnav$i&#8217;)\” onFocus=\”this.blur()\”&gt;&lt;!&#8211;{$m['link']['title']}&#8211;&gt;&lt;/a&gt;”;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">if ($isactive) {</div>
<div id="_mcePaste">$cursubmenu = $m['below'];</div>
<div id="_mcePaste">$cursubmenunode = $m;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">if ($m['below']) {</div>
<div id="_mcePaste">?&gt;</div>
<div id="_mcePaste">&lt;div id=”subnav&lt;?php echo $i?&gt;” &gt;</div>
<div id="_mcePaste">&lt;p&gt;.&lt;/p&gt;</div>
<div id="_mcePaste">&lt;p&gt;</div>
<div id="_mcePaste">&lt;span style=”width: 200px”&gt;</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">foreach($m['below'] as $k =&gt; $v) {</div>
<div id="_mcePaste">$a = $dir . drupal_get_path_alias($v['link']['link_path']);</div>
<div id="_mcePaste">echo “&lt;a href=\”$a\”&gt;{$v['link']['title']}&lt;/a&gt;&lt;br /&gt;”;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">?&gt;</div>
<div id="_mcePaste">&lt;/span&gt;</div>
<div id="_mcePaste">&lt;/p&gt;</div>
<div id="_mcePaste">&lt;/div&gt;</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">$i++;</div>
<div id="_mcePaste">?&gt;</div>
<div id="_mcePaste">&lt;/li&gt;</div>
<div id="_mcePaste">&lt;?php endforeach; ?&gt;</div>
<div id="_mcePaste">&lt;/ul&gt;</div>
<img src="http://feeds.feedburner.com/~r/3gcnbeta/IfqM/~4/wBZNb6hgwoc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.3gcnbeta.com/wordpress/2010/10/08/drupal-%e8%8f%9c%e5%8d%95%e7%9a%84%e8%af%bb%e5%8f%96%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.3gcnbeta.com/wordpress/2010/10/08/drupal-%e8%8f%9c%e5%8d%95%e7%9a%84%e8%af%bb%e5%8f%96%e6%96%b9%e6%b3%95/</feedburner:origLink></item>
	<media:rating>nonadult</media:rating></channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->

