<?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>王超 - 博客 BLOG &#187; php</title>
	<atom:link href="http://www.wangchao123.com/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wangchao123.com</link>
	<description>code player 海盗精神 - 他们向往自由，面对大海胸怀宽广，只拿他们想要的，遵守契约，单纯而且机智。</description>
	<lastBuildDate>Sun, 05 Sep 2010 20:06:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>用 javascript 脚本 防止搜索引擎抓取页面上的敏感信息 (jquery)</title>
		<link>http://www.wangchao123.com/2009/06/14/231</link>
		<comments>http://www.wangchao123.com/2009/06/14/231#comments</comments>
		<pubDate>Sun, 14 Jun 2009 12:39:04 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[技巧]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=231</guid>
		<description><![CDATA[为了防止在搜索引擎搜索到不想公开的信息如：邮箱，电话，但是又想在相应的页面显示，除了设置爬虫屏蔽整个页面，还有一个比较通用的方法利用js重写内容
test.php 代码如下:
 &#60;p class=&#8221;hex&#8221;&#62;&#60;?=bin2hex(&#8221;+86(10) 85911014-13&#8243;)?&#62;&#60;/p&#62;
&#60;p class=&#8221;hex&#8221;&#62;&#60;?=bin2hex(&#8221;wangchao123.com@gmail.com)?&#62;&#60;/p&#62;
&#60;p class=&#8221;hex&#8221;&#62;&#60;?=bin2hex(&#8221;会员姓名&#8221;)?&#038;<p />……<br /><a href="http://www.wangchao123.com/2009/06/14/231">[阅读全文]</a>]]></description>
			<content:encoded><![CDATA[<p style="padding-left: 30px;">为了防止在搜索引擎搜索到不想公开的信息如：邮箱，电话，但是又想在相应的页面显示，除了设置爬虫屏蔽整个页面，还有一个比较通用的方法利用js重写内容</p>
<h2>test.php 代码如下:</h2>
<p style="padding-left: 30px;"> &lt;p class=&#8221;hex&#8221;&gt;&lt;?=bin2hex(&#8221;+86(10) 85911014-13&#8243;)?&gt;&lt;/p&gt;<br />
&lt;p class=&#8221;hex&#8221;&gt;&lt;?=bin2hex(&#8221;<a href="mailto:wangchao123.com@gmail.com">wangchao123.com@gmail.com</a>)?&gt;&lt;/p&gt;<br />
&lt;p class=&#8221;hex&#8221;&gt;&lt;?=bin2hex(&#8221;会员姓名&#8221;)?&gt;&lt;/p&gt;</p>
<p>ps:   为所有需要替换的标签绑定 hex 样式以便jQuery选择器选择 (bin2hex 将字符串专函为 ASCII码）</p>
<p> </p>
<h2>jQuery 代码部分:</h2>
<p style="padding-left: 30px;">&lt;script language=&#8221;javascript&#8221;&gt;</p>
<p style="padding-left: 30px;">//加载完成后替换所有 hex 的地方<br />
$(function (){ <br />
 $(&#8221;.hex&#8221;).each(function(){<br />
  var oldtext = $(this).text();<br />
   $(this).text(hex2bin(oldtext));<br />
 })<br />
})</p>
<p style="padding-left: 30px;">//ascii 码，字符串互转的方法<br />
function hex2bin(hex){<br />
 var result = &#8220;&#8221;;<br />
 if(hex &amp;&amp; hex.length &amp;&amp; hex.length % 2 == 0){</p>
<p style="padding-left: 30px;">  for(var i = 0 ;i&lt;hex.length;i+=2){<br />
   result += &#8220;%&#8221;;<br />
   result += hex.substr(i, 2);<br />
  }<br />
  result = decodeURIComponent(result);<br />
 }<br />
 return result;<br />
}</p>
<p style="padding-left: 30px;">function bin2hex(bin){<br />
 var result = &#8220;&#8221;;<br />
 var temp = &#8220;&#8221;;<br />
 for(var i=0;i&lt;bin.length;i++){<br />
  var chr = bin.charCodeAt(i);<br />
  if(chr&gt;127){<br />
   chr = encodeURIComponent(bin.charAt(i));<br />
  }else{<br />
   chr = chr.toString(16);<br />
   if(chr.length == 1){<br />
    chr = &#8220;0&#8243; + chr;<br />
   }<br />
  }<br />
  result += chr;<br />
 }</p>
<p style="padding-left: 30px;"> for(var i=0;i&lt;result.length;i++){<br />
  var chr = result.charAt(i);<br />
  if(chr!=&#8217;%'){<br />
   temp+=chr;<br />
  }<br />
 }<br />
 return temp.toLowerCase();<br />
}</p>
<p style="padding-left: 30px;">&lt;/script&gt;</p>
<h2>输出结果页html源代码：</h2>
<pre>&lt;p align="left" class="hex"&gt;2b3836283130292038353931313031342d3138&lt;/p&gt;
&lt;p align="left" class="hex"&gt;2b383628313029203133393130313535383735&lt;/p&gt;
&lt;p align="left" class="hex"&gt;2b3836283130292038353931313031342d3138&lt;/p&gt;</pre>
<pre>实现了不让搜索引擎抓取敏感信息</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2009/06/14/231/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cvs update 提示信息含义</title>
		<link>http://www.wangchao123.com/2009/06/08/158</link>
		<comments>http://www.wangchao123.com/2009/06/08/158#comments</comments>
		<pubDate>Mon, 08 Jun 2009 14:16:21 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[开发工具软件]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=158</guid>
		<description><![CDATA[&#8220;cvs update&#8221; 后在信息框里会列出你的操作，你的文件update的情况，这里是CVS使用的所有其它单字符信息性消息的列表：
 
U [path]  在本地机更新get到了服务器上最新的或者最新版本的文件。
P [path]  像“U”一样，只是在update时你的网络带宽少的情况下CVS服务器所出现的提示。
M [path] 这意味着您已经修改过该文件了；而且，有可能资源库中新的更改已成功地合并到该文件。
C [path] 错误警报，&#8221;C&#8221; 字符表明该文件存在冲突，需要在使用 &#8220;commit&#8221; 提交前解决这冲突。
A [path] 该文件是计划要添加的，即添加了但尚未提交，这时你还使用update命令，CVS就<p />……<br /><a href="http://www.wangchao123.com/2009/06/08/158">[阅读全文]</a>]]></description>
			<content:encoded><![CDATA[<p>&#8220;cvs update&#8221; 后在信息框里会列出你的操作，你的文件update的情况，这里是CVS使用的所有其它单字符信息性消息的列表：<br />
 <br />
<span style="color: #008000;"><span style="color: #00ff00;">U [path]</span>  </span>在本地机更新get到了服务器上最新的或者最新版本的文件。</p>
<p><span style="color: #00ff00;">P [path] </span> 像“U”一样，只是在update时你的网络带宽少的情况下CVS服务器所出现的提示。</p>
<p><span style="color: #0000ff;">M [path] </span>这意味着您已经修改过该文件了；而且，有可能资源库中新的更改已成功地合并到该文件。</p>
<p><span style="color: #ff0000;">C [path]</span> 错误警报，&#8221;C&#8221; 字符表明该文件存在冲突，需要在使用 &#8220;commit&#8221; 提交前解决这冲突。</p>
<p><span style="color: #ff0000;">A [path]</span> 该文件是计划要添加的，即添加了但尚未提交，这时你还使用update命令，CVS就会有这个提示，当你 &#8220;commit&#8221; 时，它被正式添加到服务器库中，问题解决。</p>
<p><span style="color: #ff0000;">R [path]</span> 象 &#8220;A&#8221; 一样，&#8221;R&#8221; 让您知道该文件计划要删除的，即删除了但尚未提交，这时你还使用update命令， CVS就会有这个提示，当你 &#8221; commit&#8221; 后，该文件就会从服务器库中删除，问题解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2009/06/08/158/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>is_null(), empty(), unset() 区别和用法 PHP</title>
		<link>http://www.wangchao123.com/2009/06/05/64</link>
		<comments>http://www.wangchao123.com/2009/06/05/64#comments</comments>
		<pubDate>Fri, 05 Jun 2009 03:29:11 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=64</guid>
		<description><![CDATA[is_null
在下列情况下一个变量被认为是 NULL：

 


被赋值为 NULL。


尚未被赋值。


被 unset().




 NULL 类型只有一个值，就是大小写敏感的关键字 NULL
empty()
""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的，如果 var 为空，则返回 TRUE。
是非空或非零的值，则 empty() 返回 FALSE
psL由于这是一个语言结构而非函数，因此它无法被变量函数调用。
empty()常用来检测 request 过来的值是否为空值(即是否传递过来)
unset() 
不是一个真正的函数：它现在是一个语句

1. 如果在函数中 unset() 一个全局变量，则只是局部变量被<p />……<br /><a href="http://www.wangchao123.com/2009/06/05/64">[阅读全文]</a>]]></description>
			<content:encoded><![CDATA[<h1>is_null</h1>
<p class="para" style="padding-left: 30px;">在下列情况下一个变量被认为是 <strong><tt>NULL</tt></strong>：</p>
<ul class="itemizedlist">
<li> 
<ul>
<li class="listitem">
<p class="para">被赋值为 <strong><tt>NULL</tt></strong>。</p>
</li>
<li class="listitem">
<p class="para">尚未被赋值。</p>
</li>
<li class="listitem">
<p class="para">被 unset().</p>
</li>
</ul>
</li>
</ul>
<p class="para" style="padding-left: 30px;"> <strong><span style="font-family: Courier New;">NULL</span></strong> 类型只有一个值，就是<span style="color: #ff0000;">大小写敏感</span>的关键字<span style="color: #ff0000;"> <strong><tt>NULL</tt></strong></span></p>
<h1 class="para"><span style="color: #ff0000;"><span style="color: #000000;">empty()</span></span></h1>
<pre class="para" style="padding-left: 30px;"><span style="color: #ff0000;"><span style="color: #000000;"><span style="color: #ff0000;"><span style="color: #000000;">""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的，如果 var 为空，<span style="color: #ff0000;">则返回 TRUE。</span></span></span></span></span></pre>
<pre class="para" style="padding-left: 30px;"><span style="color: #ff0000;"><span style="color: #000000;">是非空或非零的值，则 empty() <span style="color: #ff0000;">返回 FALSE</span></span></span></pre>
<pre class="para" style="padding-left: 30px;"><span style="color: #ff0000;"><span style="color: #000000;"><span style="color: #ff0000;"><span class="simpara"><span style="color: #000000;">psL由于这是一个语言结构而非函数，因此它无法被</span><a class="link" href="http://www.wangchao123.com/wp-admin/functions.variable-functions.html">变量函数</a><span style="color: #000000;">调用。</span></span></span></span></span></pre>
<pre class="para" style="padding-left: 30px;"><span style="color: #ff0000;"><span style="color: #000000;"><span style="color: #ff0000;"><span class="simpara"><span style="color: #ff0000;">empty()常用来检测 request 过来的值是否为空值(即是否传递过来)</span></span></span></span></span></pre>
<h1 class="para"><span style="color: #ff0000;"><span style="color: #000000;"><span style="color: #ff0000;"><span class="simpara"><span style="color: #000000;">unset() </span></span></span></span></span></h1>
<pre class="para" style="padding-left: 30px;"><span style="color: #ff0000;"><span style="color: #000000;"><span style="color: #ff0000;"><span class="simpara"><span style="color: #000000;">不是一个真正的函数：它现在是一个语句</span></span></span></span></span></pre>
<pre class="para" style="padding-left: 60px;"><span style="color: #ff0000;"><span style="color: #000000;"><span style="color: #ff0000;"><span class="simpara"><span style="color: #000000;">
1. 如果在函数中 <strong>unset()</strong> 一个全局变量，则只是局部变量被销毁，而在调用环境中的变量将保持调用 <strong>unset()</strong> 之前一样的值。 

<span style="color: #000000;"><span style="color: #0000bb;">&lt;?php
</span><span style="color: #007700;">function </span><span style="color: #0000bb;">destroy_foo</span><span style="color: #007700;">() {
    global </span><span style="color: #0000bb;">$foo</span><span style="color: #007700;">;
    unset(</span><span style="color: #0000bb;">$foo</span><span style="color: #007700;">);
}

</span><span style="color: #0000bb;">$foo </span><span style="color: #007700;">= </span><span style="color: #dd0000;">'bar'</span><span style="color: #007700;">;
</span><span style="color: #0000bb;">destroy_foo</span><span style="color: #007700;">();
echo </span><span style="color: #0000bb;">$foo</span><span style="color: #007700;">;
</span><span style="color: #0000bb;">?&gt;</span> </span>

结果:

bar

2.如果在函数中 <strong>unset()</strong> 一个静态变量，则 <strong>unset()</strong> 将销毁此变量及其所有的引用。 

<span style="color: #000000;"><span style="color: #0000bb;">&lt;?php
</span><span style="color: #007700;">function </span><span style="color: #0000bb;">foo</span><span style="color: #007700;">() {
    static </span><span style="color: #0000bb;">$a</span><span style="color: #007700;">;
    </span><span style="color: #0000bb;">$a</span><span style="color: #007700;">++;
    echo </span><span style="color: #dd0000;">"$a\n"</span><span style="color: #007700;">;
    unset(</span><span style="color: #0000bb;">$a</span><span style="color: #007700;">);
}

</span><span style="color: #0000bb;">foo</span><span style="color: #007700;">();
</span><span style="color: #0000bb;">foo</span><span style="color: #007700;">();
</span><span style="color: #0000bb;">foo</span><span style="color: #007700;">();
</span><span style="color: #0000bb;">?&gt;</span> </span>
<span style="color: #000000;">
结果:

1

2

3

3.如果您想在函数中 <strong>unset()</strong> 一个全局变量，可使用 <var class="varname">$GLOBALS</var> 数组来实现：
<span style="color: #000000;"><span style="color: #0000bb;">&lt;?php
</span><span style="color: #007700;">function </span><span style="color: #0000bb;">foo</span><span style="color: #007700;">() {
    unset(</span><span style="color: #0000bb;">$GLOBALS</span><span style="color: #007700;">[</span><span style="color: #dd0000;">'bar'</span><span style="color: #007700;">]);
}

</span><span style="color: #0000bb;">$bar </span><span style="color: #007700;">= </span><span style="color: #dd0000;">"something"</span><span style="color: #007700;">;
</span><span style="color: #0000bb;">foo</span><span style="color: #007700;">();
</span><span style="color: #0000bb;">?&gt;</span> </span>
 
</span></span></span></span></span></span></pre>
<pre class="para"><span style="color: #ff0000;"><span style="color: #000000;"> </span></span></pre>
<h1 class="para"></h1>
<p class="para"><span style="color: #ff0000;"><strong><tt></tt></strong></span></p>
<p class="para"><span style="color: #ff0000;"><strong><tt></tt></strong></span></p>
<p class="para"><span style="color: #ff0000;"><strong><tt></tt></strong></span></p>
<p class="para"><span style="color: #ff0000;"><strong><tt></tt></strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2009/06/05/64/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
