<?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>Nroe 的 PHPer 博客</title>
	<atom:link href="http://blog.nroed.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nroed.com</link>
	<description>$lang = array(&#039;PHP&#039;, &#039;NODEJS&#039;), $os = array(&#039;FREEBSD&#039;, &#039;OSX&#039;), $ide = array(&#039;KEDITOR&#039;, &#039;ZendStudio&#039;), return;</description>
	<lastBuildDate>Wed, 09 May 2012 15:17:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>MAC PRO 光荣退休</title>
		<link>http://blog.nroed.com/2012/05/09/mac-pro-%e5%85%89%e8%8d%a3%e9%80%80%e4%bc%91/</link>
		<comments>http://blog.nroed.com/2012/05/09/mac-pro-%e5%85%89%e8%8d%a3%e9%80%80%e4%bc%91/#comments</comments>
		<pubDate>Wed, 09 May 2012 15:17:56 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1707</guid>
		<description><![CDATA[<p>MAC PRO 光荣退休，本子是之前讲过的MC026。<br /> 3年前买的，2.66的CPU在当时非常强劲。用下来除了热，其他方便非常不错。<br /> 这几天由于主板坏了，光荣退休了。去苹果 4S 店问了下，主板坏了修一下 5006 RMB。</p> <p>PS：检查费用是 303，其中竟然还有增值税。</p> <p>所以索性让他退休了。如果有人需要零部件，可以分批出售哦 ：）。<br /> 比如 内存啦、风扇啦、散热片啦、原装 320G 硬盘啦等等。</p> <p>现在只能等待下一款 MAC PRO 出世了。抱怨下，才 3年就坏了，苹果本子质量上也不是那么如意。本来想买 THINKPAD，但纠结系统只能装 WINDOWS。</p>]]></description>
			<content:encoded><![CDATA[<p>MAC PRO 光荣退休，本子是之前讲过的MC026。<br />
3年前买的，2.66的CPU在当时非常强劲。用下来除了热，其他方便非常不错。<br />
这几天由于主板坏了，光荣退休了。去苹果 4S 店问了下，主板坏了修一下 5006 RMB。</p>
<p>PS：检查费用是 303，其中竟然还有增值税。</p>
<p>所以索性让他退休了。如果有人需要零部件，可以分批出售哦 ：）。<br />
比如 内存啦、风扇啦、散热片啦、原装 320G 硬盘啦等等。</p>
<p>现在只能等待下一款 MAC PRO 出世了。抱怨下，才 3年就坏了，苹果本子质量上也不是那么如意。本来想买 THINKPAD，但纠结系统只能装 WINDOWS。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/05/09/mac-pro-%e5%85%89%e8%8d%a3%e9%80%80%e4%bc%91/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Brain 后台管理UI</title>
		<link>http://blog.nroed.com/2012/03/30/its-brain-%e5%90%8e%e5%8f%b0%e7%ae%a1%e7%90%86ui/</link>
		<comments>http://blog.nroed.com/2012/03/30/its-brain-%e5%90%8e%e5%8f%b0%e7%ae%a1%e7%90%86ui/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 01:06:57 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[计算机应用]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1704</guid>
		<description><![CDATA[<p>昨天晚上终于在救济下花钱买了一套后台管理的UI　<a href="http://themes.kopyov.com/?theme=Its%20Brain%20-%20admin%20theme" target="_blank">It&#8217;s Brain</a>　。这里和大家分享下，感觉真的很不错。我用PAYPAL支付一共是２４美元。</p> <p></p>]]></description>
			<content:encoded><![CDATA[<p>昨天晚上终于在救济下花钱买了一套后台管理的UI　<a href="http://themes.kopyov.com/?theme=Its%20Brain%20-%20admin%20theme" target="_blank">It&#8217;s Brain</a>　。这里和大家分享下，感觉真的很不错。我用PAYPAL支付一共是２４美元。</p>
<p><img alt="" src="http://3.s3.envato.com/files/14850260/01_preview.__large_preview.png" title="ItsBrain-preview" class="alignnone" width="590" height="300" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/03/30/its-brain-%e5%90%8e%e5%8f%b0%e7%ae%a1%e7%90%86ui/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSX 下 DOT_ 前綴文件</title>
		<link>http://blog.nroed.com/2012/02/28/osx-%e4%b8%8b-dot_-%e5%89%8d%e7%b6%b4%e6%96%87%e4%bb%b6/</link>
		<comments>http://blog.nroed.com/2012/02/28/osx-%e4%b8%8b-dot_-%e5%89%8d%e7%b6%b4%e6%96%87%e4%bb%b6/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 03:38:24 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[计算机应用]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1696</guid>
		<description><![CDATA[<p>今天在文件系統下發現很多 “._” 為前綴的文件。比如 “/Zend/._Version.php”。內容為：</p> <p> Mac OS X &#8230; com.apple.quarantine &#8230; &#124;com.google.ChromeThis resource fork intentionally left blank ˇˇ </p> <p>查詢 GOOGLE 後發現 “*_” 為前綴的文件是 OSX 下 “Apple Double” 的文件系統處理機制。該文件可以被安全的刪除。</p> <p> Before Mac OS X, the Mac OS used &#8216;forked&#8217; files, which have two components: a data fork and a resource fork. The Mac OS Standard [...]]]></description>
			<content:encoded><![CDATA[<p>今天在文件系統下發現很多 “._” 為前綴的文件。比如 “/Zend/._Version.php”。內容為：</p>
<blockquote><p>
Mac OS X &#8230; com.apple.quarantine &#8230; |com.google.ChromeThis resource fork intentionally left blank   ˇˇ
</p></blockquote>
<p>查詢 GOOGLE 後發現 “*_” 為前綴的文件是 OSX 下 “Apple Double” 的文件系統處理機制。該文件可以被安全的刪除。</p>
<blockquote><p>
Before Mac OS X, the Mac OS used &#8216;forked&#8217; files, which have two components: a data fork and a resource fork. The Mac OS Standard (HFS) and Mac OS Extended (HFS Plus) disk formats support forked files. When you move these types of files to other disk formats, the resource fork can be lost.</p>
<p>With Mac OS X, there is a mechanism called “Apple Double” that allows the system to work with disk formats that do not have a forked file feature, such as remote NFS, SMB, WebDAV directories, or local UFS volumes. Apple Double does this by converting the file into two separate files. The first new file keeps the original name and contains the data fork of the original file. The second new file has the name of the original file prefixed by a “._ ” and contains the resource fork of the original file. If you see both files, the ._ file can be safely ignored. Sometimes when deleting a file, the ._ component will not be deleted. If this occurs you can safely delete the ._ file.
</p></blockquote>
<p>原文地址：<a href="http://support.apple.com/kb/TA20578" target="_blank">Mac OS X: Apple Double Format Creates File Name With the Prefix &#8216;._&#8217;</a> 文章中說只影響 Mac OS X 10.0, Mac OS X 10.2。但是我是從 10.5.x 升級到 10.7.x 的。所以也應該影響到後續版本。<br />
既然這樣就刪除了吧，呵呵</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>path-to-clean <span style="color: #660033;">-name</span> <span style="color: #ff0000;">'._*'</span> <span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #c20cb9; font-weight: bold;">rm</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/28/osx-%e4%b8%8b-dot_-%e5%89%8d%e7%b6%b4%e6%96%87%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>談談PHP的文件上傳進度</title>
		<link>http://blog.nroed.com/2012/02/27/%e8%ab%87%e8%ab%87php%e7%9a%84%e6%96%87%e4%bb%b6%e4%b8%8a%e5%82%b3%e9%80%b2%e5%ba%a6/</link>
		<comments>http://blog.nroed.com/2012/02/27/%e8%ab%87%e8%ab%87php%e7%9a%84%e6%96%87%e4%bb%b6%e4%b8%8a%e5%82%b3%e9%80%b2%e5%ba%a6/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 16:11:26 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[编程&开发]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[UPLOAD-FILE]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1683</guid>
		<description><![CDATA[<p>不知道爲什麽，我老是着迷于文件上傳這些東西上。之前日誌中寫過：<a href="http://blog.nroed.com/2011/11/21/iframe-post-file/" target="_blank">IFRAME POST FILE（IFRAME 文件上传）</a>、<a href="http://blog.nroed.com/2011/05/17/zf-1-11-0-zend_file_transfer_adapter_http%e5%88%a4%e6%96%ad%e6%96%87%e4%bb%b6%e5%a4%a7%e5%b0%8f%e5%ad%98%e5%9c%a8%e9%97%ae%e9%a2%98/" target="_blank">zf 1.11.0 Zend_File_Transfer_Adapter_Http判断文件大小存在问题</a>、<a href="http://blog.nroed.com/2010/12/28/a-file-upload-script-with-progress-bar-drag-and-drop/" target="_blank">AJAX 文件上传</a>、<a href="http://blog.nroed.com/2010/01/27/nginx-upload-file/" target="_blank">NGINX 上传文件</a>、<a href="http://blog.nroed.com/2010/01/22/nginx-%e4%b8%8a%e4%bc%a0%e8%bf%9b%e5%ba%a6%e6%9d%a1/" target="_blank">NGINX 上传进度条</a>、<a href="http://blog.nroed.com/2010/01/22/php-upload-progress/" target="_blank">PHP 文件上传进度条处理 uploadprogress</a>。</p> <p>回想起來這個問題可以很簡單也可以很複雜。簡單需求是上傳小文件并保存在某個地方、複雜的情況是上傳大文件帶進度條、再帶個續傳？ 呵呵，如果除了續傳外，其實這些要求并不是很苛刻吧。<br /> 對於PHP 5.4（目前最新的是PHP 5.4.0 RC8）之前版本，你可以很容易的解決上傳文件的問題，但是進度條總是比較麻煩。因為你需要其他的擴展比如上面提供的 NGINX 的進度條、或者PECL插件。在PHP 5.4的 <a href="https://svn.php.net/repository/php/php-src/tags/php_5_4_0alpha1/NEWS" target="_blank">20 Jun 2011, PHP 5.4.0 Alpha 1</a> ，其本身終於加入了對進度條的支持，該功能是基於 <a href="http://cn.php.net/manual/zh/session.upload-progress.php" target="_blank">SESSION </a>的。</p> <p> - Improved Session extension:<br /> . Added [...]]]></description>
			<content:encoded><![CDATA[<p>不知道爲什麽，我老是着迷于文件上傳這些東西上。之前日誌中寫過：<a href="http://blog.nroed.com/2011/11/21/iframe-post-file/" target="_blank">IFRAME POST FILE（IFRAME 文件上传）</a>、<a href="http://blog.nroed.com/2011/05/17/zf-1-11-0-zend_file_transfer_adapter_http%e5%88%a4%e6%96%ad%e6%96%87%e4%bb%b6%e5%a4%a7%e5%b0%8f%e5%ad%98%e5%9c%a8%e9%97%ae%e9%a2%98/" target="_blank">zf 1.11.0 Zend_File_Transfer_Adapter_Http判断文件大小存在问题</a>、<a href="http://blog.nroed.com/2010/12/28/a-file-upload-script-with-progress-bar-drag-and-drop/" target="_blank">AJAX 文件上传</a>、<a href="http://blog.nroed.com/2010/01/27/nginx-upload-file/" target="_blank">NGINX 上传文件</a>、<a href="http://blog.nroed.com/2010/01/22/nginx-%e4%b8%8a%e4%bc%a0%e8%bf%9b%e5%ba%a6%e6%9d%a1/" target="_blank">NGINX 上传进度条</a>、<a href="http://blog.nroed.com/2010/01/22/php-upload-progress/" target="_blank">PHP 文件上传进度条处理 uploadprogress</a>。</p>
<p>回想起來這個問題可以很簡單也可以很複雜。簡單需求是上傳小文件并保存在某個地方、複雜的情況是上傳大文件帶進度條、再帶個續傳？ 呵呵，如果除了續傳外，其實這些要求并不是很苛刻吧。<br />
對於PHP 5.4（目前最新的是PHP 5.4.0 RC8）之前版本，你可以很容易的解決上傳文件的問題，但是進度條總是比較麻煩。因為你需要其他的擴展比如上面提供的 NGINX 的進度條、或者PECL插件。在PHP 5.4的 <a href="https://svn.php.net/repository/php/php-src/tags/php_5_4_0alpha1/NEWS" target="_blank">20 Jun 2011, PHP 5.4.0 Alpha 1</a> ，其本身終於加入了對進度條的支持，該功能是基於 <a href="http://cn.php.net/manual/zh/session.upload-progress.php" target="_blank">SESSION </a>的。</p>
<blockquote><p>
- Improved Session extension:<br />
  . Added support for storing upload progress feedback in session data. (Arnaud)
</p></blockquote>
<p>不過目前PHP 5.4的正式版還沒發佈，我也沒裝，所以還不知道這個解決方案會不會像 APC 那樣有問題（至於 APC 的進度條存在什麽問題請 GOOGLE 下，也許你用的版本已經解決了）。之所以這麼晚了又講這種老生常談的問題，是因為我突然發現發展沒多久的 NODEJS 竟然幾句話就搞定這個問題了。還有那 SOCKET SERVER。</p>
<p>哎，該睡覺了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/27/%e8%ab%87%e8%ab%87php%e7%9a%84%e6%96%87%e4%bb%b6%e4%b8%8a%e5%82%b3%e9%80%b2%e5%ba%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>猫老版</title>
		<link>http://blog.nroed.com/2012/02/24/%e7%8c%ab%e8%80%81%e7%89%88/</link>
		<comments>http://blog.nroed.com/2012/02/24/%e7%8c%ab%e8%80%81%e7%89%88/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 06:07:49 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1679</guid>
		<description><![CDATA[<p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/1.jpg" rel="lightbox[1679]"></a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/1.jpg" rel="lightbox[1679]"><img src="http://blog.nroed.com/wp-content/uploads/2012/02/1.jpg" alt="" title="1" width="298" height="251" class="aligncenter size-full wp-image-1680" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/24/%e7%8c%ab%e8%80%81%e7%89%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转载】find + xargs 删除文件名中含有空格的文件</title>
		<link>http://blog.nroed.com/2012/02/22/%e3%80%90%e8%bd%ac%e8%bd%bd%e3%80%91find-xargs-%e5%88%a0%e9%99%a4%e6%96%87%e4%bb%b6%e5%90%8d%e4%b8%ad%e5%90%ab%e6%9c%89%e7%a9%ba%e6%a0%bc%e7%9a%84%e6%96%87%e4%bb%b6/</link>
		<comments>http://blog.nroed.com/2012/02/22/%e3%80%90%e8%bd%ac%e8%bd%bd%e3%80%91find-xargs-%e5%88%a0%e9%99%a4%e6%96%87%e4%bb%b6%e5%90%8d%e4%b8%ad%e5%90%ab%e6%9c%89%e7%a9%ba%e6%a0%bc%e7%9a%84%e6%96%87%e4%bb%b6/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 09:11:37 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[计算机应用]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1676</guid>
		<description><![CDATA[<p>转载自：http://blog.sina.com.cn/s/blog_53df94780100072w.html</p> <p>问题：查找某个目录下更改时间超过7天的文件并删除它们。</p> <p>方法一：</p> 1<br />$ find . -type f -mtime +7 -print -exec rm &#123;&#125; \; <p>问题来了，在使用find命令的-exec选项处理匹配到的文件时，find命令将所有匹配到的文件一起传递给exec执行。不幸的是，有些系统对能够传递给exec的命令长度有限制，这样在find命令运行几分钟之后，就会出现溢出错误。错误信息通常是”参数列太长”或”参数列溢出”。这就是xargs命令的用处所在，特别是与find命令一起使用。find命令把匹配到的文件传递给xargs命令，而xargs命令每次只获取一部分文件而不是全部，不像-exec选项那样。这样它可以先处理最先获取的一部分文件，然后是下一批，并如此继续下去。在有些系统中，使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程，并非将匹配到的文件全部作为参数一次执行；这样在有些情况下就会出现进程过多，系统性能下降的问题，因而效率不高；而使用xargs命令则只有一个进程。另外，在使用xargs命令时，究竟是一次获取所有的参数，还是分批取得参数，以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。</p> <p>方法二：</p> 1<br />$ find . -type f -mtime +7 -print &#124; xargs rm <p>还是有问题：当有许多包含空格、圆括号和其他“禁用”字符的文件时， xargs处理起来会比较困难。幸运的是，在Linux下find命令有一个选项-print0，它以null字符分隔输出的文件名而不是用新行字符。tar 和 xargs 等命令有 -0（或 &#8211;null）选项，这使它们能够理解这种形式的参数。</p> <p>方法三：</p> 1<br />$ find . -type f -mtime +7 -print0 &#124; xargs -0 rm <p>但是遗憾的是这种方法在Solaris下不支持！不过不用担心，也有解决的方法：</p> <p>方法四：</p> 1<br />$ [...]]]></description>
			<content:encoded><![CDATA[<p>转载自：http://blog.sina.com.cn/s/blog_53df94780100072w.html</p>
<p>问题：查找某个目录下更改时间超过7天的文件并删除它们。</p>
<p>方法一：</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> f <span style="color: #660033;">-mtime</span> +<span style="color: #000000;">7</span> <span style="color: #660033;">-print</span> <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;</div></td></tr></tbody></table></div>
<p>问题来了，在使用find命令的-exec选项处理匹配到的文件时，find命令将所有匹配到的文件一起传递给exec执行。不幸的是，有些系统对能够传递给exec的命令长度有限制，这样在find命令运行几分钟之后，就会出现溢出错误。错误信息通常是”参数列太长”或”参数列溢出”。这就是xargs命令的用处所在，特别是与find命令一起使用。find命令把匹配到的文件传递给xargs命令，而xargs命令每次只获取一部分文件而不是全部，不像-exec选项那样。这样它可以先处理最先获取的一部分文件，然后是下一批，并如此继续下去。在有些系统中，使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程，并非将匹配到的文件全部作为参数一次执行；这样在有些情况下就会出现进程过多，系统性能下降的问题，因而效率不高；而使用xargs命令则只有一个进程。另外，在使用xargs命令时，究竟是一次获取所有的参数，还是分批取得参数，以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。</p>
<p>方法二：</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> f <span style="color: #660033;">-mtime</span> +<span style="color: #000000;">7</span> <span style="color: #660033;">-print</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #c20cb9; font-weight: bold;">rm</span></div></td></tr></tbody></table></div>
<p>还是有问题：当有许多包含空格、圆括号和其他“禁用”字符的文件时， xargs处理起来会比较困难。幸运的是，在Linux下find命令有一个选项-print0，它以null字符分隔输出的文件名而不是用新行字符。tar 和 xargs 等命令有 -0（或 &#8211;null）选项，这使它们能够理解这种形式的参数。</p>
<p>方法三：</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> f <span style="color: #660033;">-mtime</span> +<span style="color: #000000;">7</span> <span style="color: #660033;">-print0</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span> <span style="color: #c20cb9; font-weight: bold;">rm</span></div></td></tr></tbody></table></div>
<p>但是遗憾的是这种方法在Solaris下不支持！不过不用担心，也有解决的方法：</p>
<p>方法四：</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> f <span style="color: #660033;">-mtime</span> +<span style="color: #000000;">7</span> <span style="color: #660033;">-print</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> l; <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$l</span>&quot;</span>;<span style="color: #000000; font-weight: bold;">done</span></div></td></tr></tbody></table></div>
<p>方法五：</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> f <span style="color: #660033;">-mtime</span> +<span style="color: #000000;">7</span> <span style="color: #660033;">-print</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-i</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'&quot;{}&quot;'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #c20cb9; font-weight: bold;">rm</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/22/%e3%80%90%e8%bd%ac%e8%bd%bd%e3%80%91find-xargs-%e5%88%a0%e9%99%a4%e6%96%87%e4%bb%b6%e5%90%8d%e4%b8%ad%e5%90%ab%e6%9c%89%e7%a9%ba%e6%a0%bc%e7%9a%84%e6%96%87%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PLEXTOR 浦科特固态 SSD M3 128G</title>
		<link>http://blog.nroed.com/2012/02/22/plextor-ssd-m3-128g/</link>
		<comments>http://blog.nroed.com/2012/02/22/plextor-ssd-m3-128g/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 02:44:06 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[计算机应用]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1664</guid>
		<description><![CDATA[<p>刚购入 <a href="http://www.plextor.com.cn/index.php/m3/px-128m3" target="_blank">PLEXTOR 浦科特固态 SSD M3 128G</a> 测试了下读写速度，贴下结果分享下。</p> <p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/as-ssd-benchM4-CT128M4SSD22012.01.png" rel="lightbox[1664]"></a></p> <p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/as-ssd-benchM4-CT128M4SSD202012.01-1.png" rel="lightbox[1664]"></a></p> <p>以上是同事 IBM WINDOWS 下测试结果，再贴个我的MAC PRO 的结果（PS：我的本子是 MAC 026 老版了）</p> <p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/2012-02-2211.06.24.png" rel="lightbox[1664]"></a></p>]]></description>
			<content:encoded><![CDATA[<p>刚购入 <a href="http://www.plextor.com.cn/index.php/m3/px-128m3" target="_blank">PLEXTOR 浦科特固态 SSD M3 128G</a> 测试了下读写速度，贴下结果分享下。</p>
<p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/as-ssd-benchM4-CT128M4SSD22012.01.png" rel="lightbox[1664]"><img class="aligncenter size-medium wp-image-1668" title="as-ssd-benchM4-CT128M4SSD22012.01" src="http://blog.nroed.com/wp-content/uploads/2012/02/as-ssd-benchM4-CT128M4SSD22012.01-300x298.png" alt="" width="300" height="298" /></a></p>
<p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/as-ssd-benchM4-CT128M4SSD202012.01-1.png" rel="lightbox[1664]"><img class="aligncenter size-medium wp-image-1669" title="as-ssd-benchM4-CT128M4SSD202012.01-1" src="http://blog.nroed.com/wp-content/uploads/2012/02/as-ssd-benchM4-CT128M4SSD202012.01-1-300x298.png" alt="" width="300" height="298" /></a></p>
<p>以上是同事 IBM WINDOWS 下测试结果，再贴个我的MAC PRO 的结果（PS：我的本子是 MAC 026 老版了）</p>
<p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/2012-02-2211.06.24.png" rel="lightbox[1664]"><img src="http://blog.nroed.com/wp-content/uploads/2012/02/2012-02-2211.06.24-238x300.png" alt="" title="2012-02-2211.06.24" width="238" height="300" class="aligncenter size-medium wp-image-1673" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/22/plextor-ssd-m3-128g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZendStudio OSX 下啟用 JAVAHL</title>
		<link>http://blog.nroed.com/2012/02/16/zendstudio-osx-%e4%b8%8b%e5%95%9f%e7%94%a8-javahl/</link>
		<comments>http://blog.nroed.com/2012/02/16/zendstudio-osx-%e4%b8%8b%e5%95%9f%e7%94%a8-javahl/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 08:29:56 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[计算机应用]]></category>
		<category><![CDATA[JAVAHL]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1654</guid>
		<description><![CDATA[<p>Subclipse 1.8.5 版本中已經沒有SVNKIT了，目前來說只支持 JAVAHL。<br /> 之前 PORT 編譯 subversion-javahlbindings 一直失敗，GOOGLE 大把資料也無果。後來就放棄了，也沒仔細研究，一直用 Subclipse 1.6 + SVNKIT。</p> <p>今天看到 <a href="http://bridgetconsulting.com/?p=64" target="_blank">Using JavaHL with Eclipse on OS X</a> ，終於解決了困惑已久的問題哈哈。按照提示修改 macports.conf 的 universal_archs 為 universal_archs i386 x86_64。然後重新編譯了相關的擴展包，之後一切順利，重啟 ZendStudio 就看到 JAVAHL 可用了呵呵。</p> <p> sudo port install subversion-javahlbindings +no_bdb +universal</p> <p>This then required me to build a number of other dependencies [...]]]></description>
			<content:encoded><![CDATA[<p>Subclipse 1.8.5 版本中已經沒有SVNKIT了，目前來說只支持 JAVAHL。<br />
之前 PORT 編譯 subversion-javahlbindings 一直失敗，GOOGLE 大把資料也無果。後來就放棄了，也沒仔細研究，一直用 Subclipse 1.6 + SVNKIT。</p>
<p>今天看到 <a href="http://bridgetconsulting.com/?p=64" target="_blank">Using JavaHL with Eclipse on OS X</a> ，終於解決了困惑已久的問題哈哈。按照提示修改 macports.conf 的 universal_archs 為 universal_archs		i386 x86_64。然後重新編譯了相關的擴展包，之後一切順利，重啟 ZendStudio 就看到 JAVAHL 可用了呵呵。</p>
<blockquote><p>
sudo port install subversion-javahlbindings +no_bdb +universal</p>
<p>This then required me to build a number of other dependencies with the +universal variant:  zlib, cyrus-sasl2, ncurses, expat.
</p></blockquote>
<p>編譯的時候主要遇到幾個模塊因為之前是 PPC ，所以出現編譯出錯。刪除重新編譯即可。<br />
以下是我遇到編譯時出現問題的包，我同時安裝了 universal以及非 universal 的二個版本。如</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">Nroe@Nroe:~# </span>port installed <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> ncurses<br />
&nbsp; ncurses <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">5.9</span>_1<br />
&nbsp; ncurses <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">5.9</span>_1+universal <span style="color: #7a0874; font-weight: bold;">&#40;</span>active<span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<ul>
<li>expat @2.0.1_1+universal</li>
<li>libiconv @1.14_0+universal</li>
<li>gettext @0.18.1.1_2+universal</li>
<li>ncurses @5.9_1+universal</li>
</ul>
<p>哦對了，我的系統版本是 10.6.8。沒有升級到 LION 系統。升級後 SVN 版本為 1.7.2</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/16/zendstudio-osx-%e4%b8%8b%e5%95%9f%e7%94%a8-javahl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>神裝配置DS411</title>
		<link>http://blog.nroed.com/2012/02/16/ds41/</link>
		<comments>http://blog.nroed.com/2012/02/16/ds41/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 05:39:43 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[计算机应用]]></category>
		<category><![CDATA[NAS]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1649</guid>
		<description><![CDATA[<p>剛看到了群暉官網出現了神裝配置的DS411，哈哈，太搞了。如此強勁的配置，不能不說是神裝啊。目前這款產品在不要發票的情況下售價是 3700 RMB。如果是這樣的配置，那真是值了呵呵。</p> <p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/2012-02-16-01.32.jpg" rel="lightbox[1649]"></a></p>]]></description>
			<content:encoded><![CDATA[<p>剛看到了群暉官網出現了神裝配置的DS411，哈哈，太搞了。如此強勁的配置，不能不說是神裝啊。目前這款產品在不要發票的情況下售價是 3700 RMB。如果是這樣的配置，那真是值了呵呵。</p>
<p><a href="http://blog.nroed.com/wp-content/uploads/2012/02/2012-02-16-01.32.jpg" rel="lightbox[1649]"><img src="http://blog.nroed.com/wp-content/uploads/2012/02/2012-02-16-01.32-300x272.jpg" alt="" title="2012-02-16-01.32" width="300" height="272" class="aligncenter size-medium wp-image-1650" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/16/ds41/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SESSION　與　Suhosin</title>
		<link>http://blog.nroed.com/2012/02/14/session-and-suhosin/</link>
		<comments>http://blog.nroed.com/2012/02/14/session-and-suhosin/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 09:01:34 +0000</pubDate>
		<dc:creator>nroe</dc:creator>
				<category><![CDATA[编程&开发]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SESSION]]></category>

		<guid isPermaLink="false">http://blog.nroed.com/?p=1632</guid>
		<description><![CDATA[<p>今天發現A網站（a.xxx.com） 以及B網站（b.xxx.com）共用　COOKIES　的域名 xxx.com 以及存儲路徑為　/　出現了問題。 A 網站、B　網站的 SESSION　各自為政。因為在配置２個網站的　SESSION　使用了相同的　MEMCACHED　服務，所以一直以來登陸　A網站成功後，B網站自然就能獲取相關的SESSION　信息了（這是最簡單的一種２個網站共享SESSION的方法，還有一種就是走接口。多數目前的網站都使用了OAUTH協議）。並且 SESSION ID 在切換各網站時也沒有變化。因為之前升級過PHP版本和一些擴展模塊，所以檢查了這種 SESSION　相關的參數，發現２個網站的參數全部一直。</p> <p>最後突然想到最近服務器裝了 SUHOSIN，一查發現是　SUHOSIN　的　cryptdocroot　配置項的問題。</p> <p> suhosin.session.cryptdocroot</p> <p>Type: Boolean<br /> Default: On<br /> Flag that decides if the transparent session encryption key depends on the Documentroot field.</p> <p>＝＝＝＝＝＝＝＝＝＝<br /> suhosin.cookie.cryptdocroot</p> <p>Type: Boolean<br /> Default: On<br /> Flag that decides if the transparent cookie encryption key depends on [...]]]></description>
			<content:encoded><![CDATA[<!--TOC-->
<p>今天發現A網站（a.xxx.com） 以及B網站（b.xxx.com）共用　COOKIES　的域名 xxx.com 以及存儲路徑為　/　出現了問題。 A 網站、B　網站的 SESSION　各自為政。因為在配置２個網站的　SESSION　使用了相同的　MEMCACHED　服務，所以一直以來登陸　A網站成功後，B網站自然就能獲取相關的SESSION　信息了（這是最簡單的一種２個網站共享SESSION的方法，還有一種就是走接口。多數目前的網站都使用了OAUTH協議）。並且 SESSION ID 在切換各網站時也沒有變化。因為之前升級過PHP版本和一些擴展模塊，所以檢查了這種 SESSION　相關的參數，發現２個網站的參數全部一直。</p>
<p>最後突然想到最近服務器裝了 SUHOSIN，一查發現是　SUHOSIN　的　cryptdocroot　配置項的問題。</p>
<blockquote><p>
suhosin.session.cryptdocroot</p>
<p>Type: Boolean<br />
Default: On<br />
Flag that decides if the transparent session encryption key depends on the Documentroot field.</p>
<p>＝＝＝＝＝＝＝＝＝＝<br />
suhosin.cookie.cryptdocroot</p>
<p>Type: Boolean<br />
Default: On<br />
Flag that decides if the transparent cookie encryption key depends on the Documentroot field.
</p></blockquote>
<p>上面２個配置我理解大概的意思是通過網站的　Documentroot　字段來加密 COOKIE、SESSION　的內容。SESSION　中出現的結果類似：</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">&quot;j8LxCbwkmQpa_qAF0cANmZK0qEiJ79aU5fp04_eH9Rc5PE9bHkKqbYbwPl9qkzcchQrBYUTWFNNEfOD22PudYw..&quot;</span>,<span style="color: #000000;">1329205992</span>,<span style="color: #000000;">7200</span><span style="color: #7a0874; font-weight: bold;">&#93;</span></div></td></tr></tbody></table></div>
<p>上面的內容是測試中，從 MEMCACHED　拿到的。相關內容處理還可能涉及到　MEMCACHED　客戶端的一個數據壓縮功能。</p>
<blockquote><p>
Memcached::OPT_COMPRESSION</p>
<p>    开启或关闭压缩功能。当开启的时候，item的值超过某个阈值（当前是100bytes）时，会首先对值进行压缩然后存储，并 在获取该值时进行解压缩然后返回，使得压缩对应用层透明。</p>
<p>    类型: boolean, 默认: TRUE.
</p></blockquote>
<p>下面通過　TELNET　到 MEMCACHED　上獲取 SID　為　oa7bbgql654j1dln2p3e930rk5　的內容以及壓縮後的內容</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">get oa7bbgql654j1dln2p3e930rk5<br />
VALUE oa7bbgql654j1dln2p3e930rk5 <span style="color: #000000;">4</span> <span style="color: #000000;">45</span><br />
a:<span style="color: #000000;">3</span>:<span style="color: #7a0874; font-weight: bold;">&#123;</span>i:<span style="color: #000000;">0</span>;s:<span style="color: #000000;">0</span>:<span style="color: #ff0000;">&quot;&quot;</span>;i:<span style="color: #000000;">1</span>;i:<span style="color: #000000;">1329203582</span>;i:<span style="color: #000000;">2</span>;i:<span style="color: #000000;">7200</span>;<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
END<br />
get oa7bbgql654j1dln2p3e930rk5<br />
VALUE oa7bbgql654j1dln2p3e930rk5 <span style="color: #000000;">20</span> <span style="color: #000000;">134</span><br />
x???<br />
? ?<span style="color: #c20cb9; font-weight: bold;">w</span>?^<span style="color: #000000;">8</span>?~?<span style="color: #7a0874; font-weight: bold;">&#91;</span>Բ1Y?y &nbsp; ????<span style="color: #000000; font-weight: bold;">!</span>??????;<span style="color: #000000; font-weight: bold;">|</span>?? ?????<span style="color: #000000; font-weight: bold;">&lt;</span>B???<span style="color: #ff0000;">&quot;1?G??u?B?????I?I?<span style="color: #007800;">$M</span>??Y?[k??e??[߬???u9?Z?䩲?2??*?L~?#?P{?0B??<br />
*(?<br />
END</span></div></td></tr></tbody></table></div>
<h3>解決辦法</h3>
<p>知道這個後，就好辦了。在 PHP.INI　文件裡加入配置，或者直接通過函數 php_ini　進行設置就行了。<br />
看了下 SUHOSIN　的　Changelog　也沒發現哪裡有明確說明　Transparent Encryption Options　是什麼時候加入的。不過，如果平時開發的話，如果沒有遇到　２　個網站共用一個 SESSION　的話，也不會碰到這種問題。</p>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">suhosin.session.cryptdocroot=Off<br />
suhosin.cookie.cryptdocroot=Off</div></td></tr></tbody></table></div>
<h3>相關參考</h3>
<ul>
<li><a href="https://bugs.php.net/bug.php?id=43682" target="_blank">https://bugs.php.net/bug.php?id=43682</a></li>
<li><a href="http://stackoverflow.com/questions/5493210/php-session-is-not-read" target="_blank">http://stackoverflow.com/questions/5493210/php-session-is-not-read</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.nroed.com/2012/02/14/session-and-suhosin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  blog.nroed.com/feed/ ) in 0.50091 seconds, on May 21st, 2012 at 4:21 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 21st, 2012 at 5:21 am UTC -->
