<?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>ZZ&#039;s Blog</title>
	<atom:link href="http://oyj.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://oyj.me</link>
	<description>Welcome to hell...</description>
	<lastBuildDate>Fri, 06 Jan 2012 08:02:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>用PHP设定WINDOWS计划任务</title>
		<link>http://oyj.me/2012/01/06/set-up-windows-scheduled-tasks-with-php/</link>
		<comments>http://oyj.me/2012/01/06/set-up-windows-scheduled-tasks-with-php/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 08:00:18 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=489</guid>
		<description><![CDATA[通常在LINUX下可以用CRON来完成这项任务，那么在WINDOWS平台可以使用系统自带的任务计划来完成。 WINDOWS的任务计划有一个可视化的管理器，具体位置是“控制面板”  - ”任务计划“ （WIN7则是在”控制面板“ &#8211; ”管理工具“中）。可视化的管理器使用非常简单，网上也有大堆的教程介绍，我就不细说了。 这里稍微提一下在命令行下的操作，以及如何使用PHP来对其进行操作。 任务计划在命行下的名字为schtasks，其实也就是windows/system32下的一个程序。 创建任务 schtasks /Create /TR taskname /TR taskrun /st starttime /sd startdate 更多的参数和解释可以参照 schtasks /Create /? 修改任务 schtasks /Change /TR taskname &#8230; 更多的参数和解释可以参照 schtasks /Change/? 另外还有查询、删除、终止等功能，就不一一列了，运行schtasks /? 会有很详细的帮助，而且都是中文的（当然用英文系统的童鞋就不是了 ） 用PHP操作命令行其实非常简单，只需要用到exec函数，那么我们只需要把创建（或改，删）的命令使用exec来执行就OK了。 说到这里，先不要急，事情还没完。当你试图用exec去执行schtasks的时候，发现啥都不会返回，同时也没有按照你的意愿成功的执行任何东西。 我也为这个问题稍稍苦恼了一下，但很快在PHP  documentation的评论里找到了答案： via http://www.php.net/manual/en/ref.exec.php#74897 Scheduling WinXP tasks with schtasks.exe and using PHP to execute the command, may sometime [...]]]></description>
			<content:encoded><![CDATA[<p>通常在LINUX下可以用CRON来完成这项任务，那么在WINDOWS平台可以使用系统自带的任务计划来完成。</p>
<p>WINDOWS的任务计划有一个可视化的管理器，具体位置是“控制面板”  - ”任务计划“ （WIN7则是在”控制面板“ &#8211; ”管理工具“中）。可视化的管理器使用非常简单，网上也有大堆的教程介绍，我就不细说了。</p>
<p>这里稍微提一下在命令行下的操作，以及如何使用PHP来对其进行操作。</p>
<p>任务计划在命行下的名字为schtasks，其实也就是windows/system32下的一个程序。</p>
<p>创建任务 schtasks /Create /TR taskname /TR taskrun /st starttime /sd startdate</p>
<p>更多的参数和解释可以参照 schtasks /Create /?</p>
<p>修改任务 schtasks /Change /TR taskname &#8230;</p>
<p>更多的参数和解释可以参照 schtasks /Change/?</p>
<p>另外还有查询、删除、终止等功能，就不一一列了，运行schtasks /? 会有很详细的帮助，而且都是中文的（当然用英文系统的童鞋就不是了 <img src='http://oyj.me/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ）</p>
<p>用PHP操作命令行其实非常简单，只需要用到<a href="http://cn.php.net/manual/zh/function.exec.php">exec</a>函数，那么我们只需要把创建（或改，删）的命令使用exec来执行就OK了。</p>
<p>说到这里，先不要急，事情还没完。当你试图用exec去执行schtasks的时候，发现啥都不会返回，同时也没有按照你的意愿成功的执行任何东西。</p>
<p>我也为这个问题稍稍苦恼了一下，但很快在PHP  documentation的评论里找到了答案：</p>
<p>via <a href="http://www.php.net/manual/en/ref.exec.php#74897">http://www.php.net/manual/en/ref.exec.php#74897</a></p>
<blockquote><p>Scheduling WinXP tasks with schtasks.exe and using PHP to execute the command, may sometime fail to work.</p>
<p>This is because, Apache does not have the privilege to access some of the System Files when placing the scheduling. The way I&#8217;d do: is by creating a normal user account and assign Apache service to logon as that account.</p>
<p>Open the &#8216;services.msc&#8217; in the &#8216;Run&#8217; window, look for Apache in the listing, right click and get to &#8216;Properties&#8217;. Click at the second tab &#8216;Log On&#8217; and fill in the &#8216;This account&#8217; fields.</p>
<p>Of course, Apache needs to be installed as Service during its first setup.</p>
<p>Hope this helps anyone.</p>
<p>Fendy Ahmad</p></blockquote>
<p>看到这里我想大部分人已经明了了。是因为Apache权限不够的问题，只需要在services.msc里面找到apache服务，然后赋予有对应权限的用户即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2012/01/06/set-up-windows-scheduled-tasks-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Simple HTML DOM Parser &#8211; 用PHP轻松解析HTML DOM</title>
		<link>http://oyj.me/2011/08/01/php-simple-html-dom-parser/</link>
		<comments>http://oyj.me/2011/08/01/php-simple-html-dom-parser/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 18:45:01 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[html dom]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=458</guid>
		<description><![CDATA[这个玩意，用来采集挺好的。别的就不废话了。 项目地址：http://simplehtmldom.sourceforge.net/ 简介 使用PHP5实现的HTML DOM解析器。让你能够使用PHP5轻松操纵HTML DOM。 支持PHP5及以上版本。 像jQuery一样使用选择器获取HTML标签。 一行代码获取HTML中的内容。 快速入门 1、如何获取HTML节点？ // Create DOM from URL or file$html = file_get_html('http://www.google.com/');&#160;// Find all images foreach($html-&#62;find('img') as $element) &#160;&#160; &#160; &#160; echo $element-&#62;src . '&#60;br&#62;';&#160;// Find all links foreach($html-&#62;find('a') as $element) &#160;&#160; &#160; &#160; echo $element-&#62;href . '&#60;br&#62;'; 2、如何修改HTML节点？ // Create DOM from string$html = str_get_html('&#60;div id=&#34;hello&#34;&#62;Hello&#60;/div&#62;&#60;div [...]]]></description>
			<content:encoded><![CDATA[<p>这个玩意，用来采集挺好的。别的就不废话了。</p>
<p>项目地址：<a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></p>
<h2>简介</h2>
<ul>
<li>使用PHP5实现的HTML DOM解析器。让你能够使用PHP5轻松操纵HTML DOM。</li>
<li>支持PHP5及以上版本。</li>
<li>像<a href="http://jquery.com" target="_blank">jQuery</a>一样使用选择器获取HTML标签。</li>
<li>一行代码获取HTML中的内容。</li>
</ul>
<h2>快速入门</h2>
<h3>1、如何获取HTML节点？</h3>
<div class="hl-surround"><div class="hl-main"><span style="color: #ffa500;">// Create DOM from URL or file</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$html</span><span style="color: Gray;"> = </span><span style="color: Blue;">file_get_html</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">http://www.google.com/</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">// Find all images </span><span style="color: Gray;"><br /></span><span style="color: Green;">foreach</span><span style="color: Olive;">(</span><span style="color: #00008b;">$html</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">img</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$element</span><span style="color: Olive;">)</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #00008b;">$element</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">src</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;br&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">// Find all links </span><span style="color: Gray;"><br /></span><span style="color: Green;">foreach</span><span style="color: Olive;">(</span><span style="color: #00008b;">$html</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$element</span><span style="color: Olive;">)</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #00008b;">$element</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">href</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;br&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></div></div>
<p><span id="more-458"></span></p>
<h3>2、如何修改HTML节点？</h3>
<div class="hl-surround"><div class="hl-main"><span style="color: #ffa500;">// Create DOM from string</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$html</span><span style="color: Gray;"> = </span><span style="color: Blue;">str_get_html</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;div id=&quot;hello&quot;&gt;Hello&lt;/div&gt;&lt;div id=&quot;world&quot;&gt;World&lt;/div&gt;</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #00008b;">$html</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">div</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">class</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">bar</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #00008b;">$html</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">div[id=hello]</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">innertext</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">foo</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #00008b;">$html</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// Output: &lt;div id=&quot;hello&quot;&gt;foo&lt;/div&gt;&lt;div id=&quot;world&quot; class=&quot;bar&quot;&gt;World&lt;/div&gt;</span><span style="color: Gray;"></span></div></div>
<h3>3、从HTML中获取内容</h3>
<div class="hl-surround"><div class="hl-main"><span style="color: #ffa500;">// Dump contents (without tags) from HTML</span><span style="color: Gray;"><br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: Blue;">file_get_html</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">http://www.google.com/</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">plaintext</span><span style="color: Gray;">;</span></div></div>
<h2>下载&amp;文档</h2>
<p>下载地址：<a href="http://sourceforge.net/projects/simplehtmldom/files/">http://sourceforge.net/projects/simplehtmldom/files/</a></p>
<p>在线文档：<a href="http://simplehtmldom.sourceforge.net/manual.htm">http://simplehtmldom.sourceforge.net/manual.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2011/08/01/php-simple-html-dom-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Debian Squeeze上安装Nginx+PHP5+MySQL</title>
		<link>http://oyj.me/2011/07/16/installing-nginx-with-php5-and-mysql-support-on-debian-squeeze/</link>
		<comments>http://oyj.me/2011/07/16/installing-nginx-with-php5-and-mysql-support-on-debian-squeeze/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 19:35:18 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[计算机相关]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=446</guid>
		<description><![CDATA[这是一篇纯粹为菜鸟谋福利的翻译教程（也是哥第一次装逼翻译）。为啥说是为菜鸟谋福利呢，因为老外写的教程通常都非常详细，每一步你需要做什么，为什么要这样做，会遇到什么问题都一一列了出来。所以，你懂的。 原文地址： http://howtoforge.org/installing-nginx-with-php5-and-mysql-support-on-debian-squeeze Tips：如果是想从Apache上迁移到Nginx只需要先停止apache服务 /etc/init.d/apache2 stop 然后卸载之 apt-get remove apache2 再然后略过以下已安装过软件步骤即可。 1、安装MySQL5 apt-get install mysql-server mysql-client 执行后进入安装，过程中会遇到MySQL提示为root用户设置密码： New password for the MySQL &#8220;root&#8221; user: &#60;&#8211; yourrootsqlpassword Repeat password for the MySQL &#8220;root&#8221; user: &#60;&#8211; yourrootsqlpassword 2、安装Nginx Nginx已经被包含在了Debian Squeeze软件源中，所以我们只需要直接从源中安装： apt-get install nginx 安装完成之后启动Nginx： /etc/init.d/nginx start Nginx默认的根目录是/var/www。如果没有这个目录，必须创建一个（并且设置目录所有者和用户组，以确保有权访问）： mkdir /var/www chown www-data:www-data /var/www 在浏览器里面输入你服务器的IP或者域名（例如 http://192.168.0.100），你会看到与下图相似的页面： 因为/var/www下面没有索引页面，所以会出现以上403拒绝访问的错误提示。 4、安装PHP5 我们可以通过FastCGI让PHP5在Nginx中运行。很幸运，Debian [...]]]></description>
			<content:encoded><![CDATA[<p>这是一篇纯粹为菜鸟谋福利的翻译教程（也是哥第一次装逼翻译）。为啥说是为菜鸟谋福利呢，因为老外写的教程通常都非常详细，每一步你需要做什么，为什么要这样做，会遇到什么问题都一一列了出来。所以，你懂的。</p>
<p>原文地址：</p>
<blockquote><p><a href="http://howtoforge.org/installing-nginx-with-php5-and-mysql-support-on-debian-squeeze">http://howtoforge.org/installing-nginx-with-php5-and-mysql-support-on-debian-squeeze </a></p></blockquote>
<p>Tips：如果是想从Apache上迁移到Nginx只需要先停止apache服务<br />
<code>/etc/init.d/apache2 stop</code></p>
<p>然后卸载之<br />
<code>apt-get remove apache2</code></p>
<p>再然后略过以下已安装过软件步骤即可。</p>
<h3>1、安装MySQL5</h3>
<p><code>apt-get install mysql-server mysql-client</code></p>
<p>执行后进入安装，过程中会遇到MySQL提示为root用户设置密码：</p>
<blockquote><p>New password for the MySQL &#8220;root&#8221; user: &lt;&#8211; yourrootsqlpassword<br />
Repeat password for the MySQL &#8220;root&#8221; user: &lt;&#8211; yourrootsqlpassword</p></blockquote>
<h3>2、安装Nginx</h3>
<p>Nginx已经被包含在了Debian Squeeze软件源中，所以我们只需要直接从源中安装：<br />
<code>apt-get install nginx</code></p>
<p>安装完成之后启动Nginx：<br />
<code>/etc/init.d/nginx start</code></p>
<p>Nginx默认的根目录是/var/www。如果没有这个目录，必须创建一个（并且设置目录所有者和用户组，以确保有权访问）：<br />
<span id="more-446"></span><br />
<code>mkdir /var/www<br />
chown www-data:www-data /var/www</code></p>
<p>在浏览器里面输入你服务器的IP或者域名（例如 http://192.168.0.100），你会看到与下图相似的页面：<br />
<a href="http://oyj.me/wp-content/uploads/2011/07/1.png"><img class="alignnone size-full wp-image-450" title="1" src="http://oyj.me/wp-content/uploads/2011/07/1.png" alt="" width="560" height="406" /></a></p>
<p><a href="http://oyj.me/wp-content/uploads/2011/07/1.png"></a>因为/var/www下面没有索引页面，所以会出现以上403拒绝访问的错误提示。</p>
<h3>4、安装PHP5</h3>
<p>我们可以通过FastCGI让PHP5在Nginx中运行。很幸运，Debian Squeeze软件源中已经包含了一个PHP5的FastCGI模块包，所以我们只需要像这样子安装（其中包含了一些PHP的其它模块，例如php-mysql）：<br />
<code>apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl</code></p>
<p>然后打开/etc/php5/cgi/php.ini，去掉cgi.fix_pathinfo=1:对应行的注释（即;号）：<br />
<code>vi /etc/php5/cgi/php.ini</code></p>
<blockquote><p>[...]<br />
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP&#8217;s<br />
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok<br />
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting<br />
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting<br />
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts<br />
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.<br />
; http://php.net/cgi.fix-pathinfo<br />
cgi.fix_pathinfo=1<br />
[...]</p></blockquote>
<p>因为Debian Squeeze上没有一个单独的FastCGI程序包，所以我们要用lighttpd的spawn-fcgi，安装lighttpd：<br />
<code>apt-get install lighttpd</code></p>
<p>安装后你会看到一个错误提示，告诉你因为80端口被占用所以lighttpd无法启动：</p>
<blockquote><p>Starting web server: lighttpd2011-02-24 01:43:18: (network.c.358) can&#8217;t bind to port:  80 Address already in use<br />
failed!<br />
invoke-rc.d: initscript lighttpd, action &#8220;start&#8221; failed.</p></blockquote>
<p>那是因为之前已经将Nginix启动，80端口被占用了。接着运行：<br />
<code>update-rc.d -f lighttpd remove</code></p>
<p>这样以后lighttpd就不会随开机启动了。</p>
<p>我们安装lighttpd只是因为要用它的spawn-gcgi（它的路径是/usr/bin/spawn-fcgi）。现在我们可以使用它了，输入以下命令：<br />
<code>spawn-fcgi --help</code></p>
<p>可以得到它的一些使用的相关说明。</p>
<p>启动一个以www-data的用户和用户组运行在9000端口上的PHP FastCGI后台程序，我们可以输入以下命令：<br />
<code>/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid</code></p>
<p>当然了，谁都不想每次开机的时候都输入这么一长串的命令来启动一个程序。所以我们让它开机就自动启动。</p>
<p>打开/etc/rc.local<br />
<code>vi /etc/rc.local</code></p>
<p>然后将以上启动PHP FastCGI的命令粘贴到文件末尾</p>
<blockquote><p>[...]<br />
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid<br />
[...]</p></blockquote>
<h3>5、配置Nginx</h3>
<p>Nginx的配置文件在/etc/nginx/nginx.conf 中，将它打开：<br />
<code>vi /etc/nginx/nginx.conf</code></p>
<p>配置文件非常容易理解，你可以去 <a href="http://wiki.codemongers.com/NginxFullExample" target="_blank">http://wiki.codemongers.com/NginxFullExample</a> 和 <a href="http://wiki.codemongers.com/NginxFullExample2" target="_blank">http://wiki.codemongers.com/NginxFullExample2</a> 了解更多的内容。</p>
<p>首先将为worker processes添加一个数值（这一步是可选的），以及将keepalive_timeout设置为一个合量的值</p>
<blockquote><p>[...]<br />
worker_processes  5;<br />
[...]<br />
keepalive_timeout   2;<br />
[...]</p></blockquote>
<p>虚拟主机（vhost）被定义在server{}中。默认的虚拟主机配置文件路径是/etc/nginx/sites-available/default。我们来修改一下：<br />
<code>vi /etc/nginx/sites-available/default</code></p>
<blockquote style="height: 300px; width: 500px; overflow: scroll;"><p>[...]<br />
server {</p>
<p>listen   80; ## listen for ipv4<br />
listen   [::]:80 default ipv6only=on; ## listen for ipv6</p>
<p>server_name  _;</p>
<p>access_log  /var/log/nginx/localhost.access.log;</p>
<p>location / {<br />
root   /var/www;<br />
index  index.php index.html index.htm;<br />
}</p>
<p>location /doc {<br />
root   /usr/share;<br />
autoindex on;<br />
allow 127.0.0.1;<br />
deny all;<br />
}</p>
<p>location /images {<br />
root   /usr/share;<br />
autoindex on;<br />
}</p>
<p>#error_page  404  /404.html;</p>
<p># redirect server error pages to the static page /50x.html<br />
#<br />
#error_page   500 502 503 504  /50x.html;<br />
#location = /50x.html {<br />
#       root   /var/www/nginx-default;<br />
#}</p>
<p># proxy the PHP scripts to Apache listening on 127.0.0.1:80<br />
#<br />
#location ~ \.php$ {<br />
#proxy_pass   http://127.0.0.1;<br />
#}</p>
<p># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000<br />
#<br />
location ~ \.php$ {<br />
fastcgi_pass   127.0.0.1:9000;<br />
fastcgi_index  index.php;<br />
fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;<br />
include         fastcgi_params;<br />
}</p>
<p># deny access to .htaccess files, if Apache&#8217;s document root<br />
# concurs with nginx&#8217;s one<br />
#<br />
location ~ /\.ht {<br />
deny  all;<br />
}<br />
}<br />
[...]</p></blockquote>
<p>server_name _; 是指包含所有的虚拟主机（当然你也可以为它设置一个域名，例如www.example.com）。</p>
<p>在location /这部分当中，我在index这一行添加了index.php（即默认的索引文件）。以及root /var/www。意思是将/var/www设置为根目录。</p>
<p>最重要的是PHP相关的设置location ~ \.php$ {}。去掉这一部分的注释（即#号）来开启它。</p>
<p>确认将fastcgi_param这一行修改成fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;（将/var/www替换成你自己设置的网站根目录）。</p>
<p>确认include和fastcgi_params;之间有几个空格。默认的配置文件中他们连在了一块，这是一个BUG。</p>
<p>好了，现在我们保存文件，并重启Nginx：<br />
<code>/etc/init.d/nginx restart</code></p>
<p>然后在/var/www下创建一个PHP文件：<br />
<code>vi /var/www/info.php</code></p>
<blockquote><p>&lt;?php phpinfo();</p></blockquote>
<p>然后我们在浏览器中访问它（例如：http://192.168.0.100/info.php）<br />
<a href="http://oyj.me/wp-content/uploads/2011/07/2.png"><img class="alignnone size-full wp-image-451" title="2" src="http://oyj.me/wp-content/uploads/2011/07/2.png" alt="" width="560" height="406" /></a></p>
<p>如你所见，在Server API一栏中显示PHP5是在FastCGI下运行的，另外下面的栏目中还会显示一些已经打开的PHP模块，包括MySQL模块。</p>
<p><a href="http://oyj.me/wp-content/uploads/2011/07/3.png"><img class="alignnone size-full wp-image-452" title="3" src="http://oyj.me/wp-content/uploads/2011/07/3.png" alt="" width="550" height="399" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2011/07/16/installing-nginx-with-php5-and-mysql-support-on-debian-squeeze/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>人生总有些这样那样的蛋疼</title>
		<link>http://oyj.me/2011/05/19/failed/</link>
		<comments>http://oyj.me/2011/05/19/failed/#comments</comments>
		<pubDate>Wed, 18 May 2011 16:28:04 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[有病呻吟]]></category>
		<category><![CDATA[蛋疼]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=438</guid>
		<description><![CDATA[好吧，确实每当这样的时段，我总是不失时机的就要回来感概一番。 断断续续的投了不少简历出去，随着最初盘算着某知名公司失败，到最后妥协去了几家规模小公司面试，直到现在依然没有遇上心目中觉得最合适的，以至于把自己推到一个蛋疼的局面。后来与包子君聊过诸多，自己想过许多之后也觉悟了。 想起好几年前的一个场景，夏天的夜晚在乡下，农家小院里摆着一张小桌子，七叔一边喝酒一边从满是酒味的嘴里吐出“心灵鸡汤”。当时的情况是家境非常寒碜，以至于我一到假期便要去各个亲戚家借宿。七叔在我记事以来的印象一直就是终日只知喝酒赌博的懒汉，有些心灵鸡汤从他口中出来还真的是一点也不和谐。但人就是这样，即使自己再不济，也要在下辈面前摆出一副经历过大风浪的牛逼模样。就是在这样的时刻，我想起那时七叔夹起一筷子酸菜，然后对我说，今天你在这儿吃了一顿只有酸菜的饭，以后是不会有人记得的，你受过多少苦，多少难，只有你自己记得，而且你要永远的记得。 我不是第一次回想到这个场景了，虽然一点儿也不文艺，但每每想起，心中还是会有股莫名的热血涌起。]]></description>
			<content:encoded><![CDATA[<p><a href="http://movie.douban.com/subject/4739952/"><img src="http://oyj.me/wp-content/uploads/2011/05/p782472775.jpg" alt="" /></a></p>
<p>好吧，确实每当这样的时段，我总是不失时机的就要回来感概一番。</p>
<p>断断续续的投了不少简历出去，随着最初盘算着某知名公司失败，到最后妥协去了几家规模小公司面试，直到现在依然没有遇上心目中觉得最合适的，以至于把自己推到一个蛋疼的局面。后来与<a href="http://www.baozi.in">包子君</a>聊过诸多，自己想过许多之后也觉悟了。</p>
<p>想起好几年前的一个场景，夏天的夜晚在乡下，农家小院里摆着一张小桌子，七叔一边喝酒一边从满是酒味的嘴里吐出“心灵鸡汤”。当时的情况是家境非常寒碜，以至于我一到假期便要去各个亲戚家借宿。七叔在我记事以来的印象一直就是终日只知喝酒赌博的懒汉，有些心灵鸡汤从他口中出来还真的是一点也不和谐。但人就是这样，即使自己再不济，也要在下辈面前摆出一副经历过大风浪的牛逼模样。就是在这样的时刻，我想起那时七叔夹起一筷子酸菜，然后对我说，今天你在这儿吃了一顿只有酸菜的饭，以后是不会有人记得的，你受过多少苦，多少难，只有你自己记得，而且你要永远的记得。</p>
<p>我不是第一次回想到这个场景了，虽然一点儿也不文艺，但每每想起，心中还是会有股莫名的热血涌起。</p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2011/05/19/failed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A罩杯的魔咒</title>
		<link>http://oyj.me/2011/03/24/the-curse-of-a-cup/</link>
		<comments>http://oyj.me/2011/03/24/the-curse-of-a-cup/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 07:35:58 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[有病呻吟]]></category>
		<category><![CDATA[小黑]]></category>
		<category><![CDATA[记忆]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=425</guid>
		<description><![CDATA[又是一晚与小黑几乎通宵聊天，话题无非就是过往的记忆，以及这几年我们各自经历的风风雨雨。一件事情如果单纯的从表面阐述一遍过去，再复杂的事情也不至于会通宵达旦的来探讨，关键在乎于我们俩都喜欢从许多不同的角度来探讨一件事情，并以此为乐，于是乎我们总有聊不完的东西，这几天聊的东西估计也够零碎的凑成一本书了吧。 往高雅处说，人与人之间最有趣的话题永远都还是感情，无论友情、爱情，亦或亲情，都是人类与其它物种之间区别最大，同时也是最有趣的一种抽象事物。往俗处点说，两个大约已经成熟的男性，最有趣的话题当然就是女人了。 小黑所经历的雌性，我亲眼所历仅有他的前女友，并且接触也不多，给我留下的主观印象是[还只是个小姑凉]。前面说了，这几年各自经历过的还算是“风风雨雨”，他当然不会只是泡了个小萝莉这么简单了事了，不过在他的口中也没有非常多云雨之事。最能让所有人羡慕嫉妒恨的是，他在十六七岁的正太年华时，能被一个御姐推倒，而且是我一直觊觎不已的东北妞（主要是被东北妞好身材的传说所影响）。当然从小黑的口中还是印证了东北妞好身材传说的事实，这让我更加的觊觎，甚至已经到了极度渴望的程度。没羞没躁的说，这让我经常会在大脑里联想一个完美女体（perfect body）是什么形状的，有时候甚至在想假如我面对我脑中这具堪称艺术的纯天然生物体的时候，会不会连交配的刺激都不需要就已经可以达到性高潮。 我们还会经常聊起包子，不得不说的是，在我们的回忆过程中，我突然知道包子当年竟然使用过[马子]这样土鳖的名词。其它一些包子无法坦然面对的猥琐事迹在此先不再多提了。更多的事情，我还是希望能够使用在一直未能够继续下去的&#60;包子的故事&#62;当中。 小学时语文老湿经常告诉我们要点题，于是我亦一如既往，俗人般按照老湿所教的要这样做了。这几年，哥所经历过的女人都是A罩杯，这件事在最近让我耿耿于怀，总觉得这完全是上天给予我这样一个巨乳控下的魔咒。这不得不让我在这一刻马教主附体！！！！风在吼！！！！马在啸！！！去泥马的A CUP有木有！！！！简直泥马是坑你妹的爹啊！！！！]]></description>
			<content:encoded><![CDATA[<p>又是一晚与小黑几乎通宵聊天，话题无非就是过往的记忆，以及这几年我们各自经历的风风雨雨。一件事情如果单纯的从表面阐述一遍过去，再复杂的事情也不至于会通宵达旦的来探讨，关键在乎于我们俩都喜欢从许多不同的角度来探讨一件事情，并以此为乐，于是乎我们总有聊不完的东西，这几天聊的东西估计也够零碎的凑成一本书了吧。</p>
<p>往高雅处说，人与人之间最有趣的话题永远都还是感情，无论友情、爱情，亦或亲情，都是人类与其它物种之间区别最大，同时也是最有趣的一种抽象事物。往俗处点说，两个大约已经成熟的男性，最有趣的话题当然就是女人了。</p>
<p>小黑所经历的雌性，我亲眼所历仅有他的前女友，并且接触也不多，给我留下的主观印象是[还只是个小姑凉]。前面说了，这几年各自经历过的还算是“风风雨雨”，他当然不会只是泡了个小萝莉这么简单了事了，不过在他的口中也没有非常多云雨之事。最能让所有人羡慕嫉妒恨的是，他在十六七岁的正太年华时，能被一个御姐推倒，而且是我一直觊觎不已的东北妞（主要是被东北妞好身材的传说所影响）。当然从小黑的口中还是印证了东北妞好身材传说的事实，这让我更加的觊觎，甚至已经到了极度渴望的程度。没羞没躁的说，这让我经常会在大脑里联想一个完美女体（perfect body）是什么形状的，有时候甚至在想假如我面对我脑中这具堪称艺术的纯天然生物体的时候，会不会连交配的刺激都不需要就已经可以达到性高潮。</p>
<p>我们还会经常聊起<a href="http://www.baozi.in">包子</a>，不得不说的是，在我们的回忆过程中，我突然知道包子当年竟然使用过[马子]这样土鳖的名词。其它一些包子无法坦然面对的猥琐事迹在此先不再多提了。更多的事情，我还是希望能够使用在一直未能够继续下去的<a href="http://oyj.me/2009/12/15/baozi-story-1/">&lt;包子的故事&gt;</a>当中。</p>
<p>小学时语文老湿经常告诉我们要点题，于是我亦一如既往，俗人般按照老湿所教的要这样做了。这几年，哥所经历过的女人都是A罩杯，这件事在最近让我耿耿于怀，总觉得这完全是上天给予我这样一个巨乳控下的魔咒。这不得不让我在这一刻马教主附体！！！！风在吼！！！！马在啸！！！去泥马的A CUP有木有！！！！简直泥马是坑你妹的爹啊！！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2011/03/24/the-curse-of-a-cup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AM 1:11, January 1, 2011</title>
		<link>http://oyj.me/2011/01/01/am-111-january-1-2011/</link>
		<comments>http://oyj.me/2011/01/01/am-111-january-1-2011/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 06:01:51 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[有病呻吟]]></category>
		<category><![CDATA[年]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=423</guid>
		<description><![CDATA[-200分豌豆福尔的2010年的最后几个小时，我跟一个短发的有着阳光笑容的妹子在咖啡厅坐着聊着一些有的没的，在冷清的大街上一起慢慢走着，最后几秒钟在广场上跟着一露天咖啡厅里的人一起倒数完。= = 我简直都蛋定了我……一切的寂寞空虚冷、为了爱情桑心、为了工作烦心神马的在这一刻完全想不起来了，偶尔还是会想去年的最后一天写下的这些tickets，当然是一个都没实现了，不然怎么是-200的豌豆福尔年呢 =v= 今年唯一要定下的目标，是和包子共同的理想，完成骑单车环游青海湖。围绕这个理想的各种事情也必然是要尽量perfect达成！其它的已经无需多言。 2011年1月1日凌晨1点11分，这一刻你和谁在一起亦或者一个人，在做什么呢？我在这一刻将一个短发的有着阳光笑容的妹子送到了家 =v=]]></description>
			<content:encoded><![CDATA[<p>-200分豌豆福尔的2010年的最后几个小时，我跟一个短发的有着阳光笑容的妹子在咖啡厅坐着聊着一些有的没的，在冷清的大街上一起慢慢走着，最后几秒钟在广场上跟着一露天咖啡厅里的人一起倒数完。= = 我简直都蛋定了我……一切的寂寞空虚冷、为了爱情桑心、为了工作烦心神马的在这一刻完全想不起来了，偶尔还是会想去年的最后一天写下的这些<a href="http://oyj.me/2009/12/31/the-end-of-2009/">tickets</a>，当然是一个都没实现了，不然怎么是-200的豌豆福尔年呢 =v=</p>
<p>今年唯一要定下的目标，是和包子共同的理想，完成骑单车环游青海湖。围绕这个理想的各种事情也必然是要尽量perfect达成！其它的已经无需多言。</p>
<p>2011年1月1日凌晨1点11分，这一刻你和谁在一起亦或者一个人，在做什么呢？我在这一刻将一个短发的有着阳光笑容的妹子送到了家 =v=</p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2011/01/01/am-111-january-1-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>留下来，或者我跟你走</title>
		<link>http://oyj.me/2010/12/07/%e7%95%99%e4%b8%8b%e6%9d%a5%ef%bc%8c%e6%88%96%e8%80%85%e6%88%91%e8%b7%9f%e4%bd%a0%e8%b5%b0/</link>
		<comments>http://oyj.me/2010/12/07/%e7%95%99%e4%b8%8b%e6%9d%a5%ef%bc%8c%e6%88%96%e8%80%85%e6%88%91%e8%b7%9f%e4%bd%a0%e8%b5%b0/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 04:31:47 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[有病呻吟]]></category>
		<category><![CDATA[电影]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=419</guid>
		<description><![CDATA[“我操你……我操你妈的台北！”（摔烂吉他，摩托车远去……） 就跟想不到竹本最后居然独自骑着单车去稚內一样的，没想到《海角七号》是这样一部慢热的爱情故事。 129分钟，前所未有的长。看着贱贱和康康满屋子飞奔着打架，徘徊在耳边却是硬盘和电脑散热器发出的声音；在群里听[平]说，那个日本人的情书不错，心想这又是一个老掉牙的狗血故事；心里仍然残留着对竹本最后表现出那份勇气的惊讶和感概…… 追逐理想总是让人振奋的一件事，所以说不放弃理想，不做装逼的傻逼必须成为活着的目标。想起自己还有理想的时候，才能不再在深夜只听到硬盘转动和散热器发出的声音；才能在每个早晨不再感觉全世界是只剩下自己和一只猫和一条狗。 “留下来，或者我跟你走”，身为一个男人都被这个男人打动了。我操！要是换作我这条伪受的话，估计会半带开玩笑的说“我跟你走吧，要不然你留下来也行”这种傻逼得一点都不能打动人且不痛不痒的shit出来。 好吧，其实我就是想说，我有点深刻的怀疑自己到底有没有认真的谈过一场恋爱，每次见到美屡满脑子全是求合体想法，特么的，这到底是为什么。]]></description>
			<content:encoded><![CDATA[<p>“我操你……我操你妈的台北！”（摔烂吉他，摩托车远去……）</p>
<p>就跟想不到竹本最后居然独自骑着单车去稚內一样的，没想到《海角七号》是这样一部慢热的爱情故事。</p>
<p>129分钟，前所未有的长。看着贱贱和康康满屋子飞奔着打架，徘徊在耳边却是硬盘和电脑散热器发出的声音；在群里听[平]说，那个日本人的情书不错，心想这又是一个老掉牙的狗血故事；心里仍然残留着对竹本最后表现出那份勇气的惊讶和感概……</p>
<p>追逐理想总是让人振奋的一件事，所以说不放弃理想，不做装逼的傻逼必须成为活着的目标。想起自己还有理想的时候，才能不再在深夜只听到硬盘转动和散热器发出的声音；才能在每个早晨不再感觉全世界是只剩下自己和一只猫和一条狗。</p>
<p>“留下来，或者我跟你走”，身为一个男人都被这个男人打动了。我操！要是换作我这条伪受的话，估计会半带开玩笑的说“我跟你走吧，要不然你留下来也行”这种傻逼得一点都不能打动人且不痛不痒的shit出来。</p>
<p>好吧，其实我就是想说，我有点深刻的怀疑自己到底有没有认真的谈过一场恋爱，每次见到美屡满脑子全是求合体想法，特么的，这到底是为什么。</p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2010/12/07/%e7%95%99%e4%b8%8b%e6%9d%a5%ef%bc%8c%e6%88%96%e8%80%85%e6%88%91%e8%b7%9f%e4%bd%a0%e8%b5%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>越专注，越成功</title>
		<link>http://oyj.me/2010/09/22/%e8%b6%8a%e4%b8%93%e6%b3%a8%ef%bc%8c%e8%b6%8a%e6%88%90%e5%8a%9f/</link>
		<comments>http://oyj.me/2010/09/22/%e8%b6%8a%e4%b8%93%e6%b3%a8%ef%bc%8c%e8%b6%8a%e6%88%90%e5%8a%9f/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 11:20:58 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[有病呻吟]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=415</guid>
		<description><![CDATA[如果不是老板在中秋节的邮件中反反复复的出现这句话，我想我这辈子也不会用这么句傻逼的话来做任何东西的标题。 上面说了，这是句傻逼到爆的话。但是昨天晚上发生的一件事情让我真正的意识到自己比这句话更傻逼。解释得再多事情都已经发生了，也已经影响到某人的心情，真的对不起，为了自己喜欢的人承受寂寞是我应该做到的，我却忽然脑子进水&#8230; &#8230; 到后来，所想到的再也不只是感情上的。活了二十多年，我真正长期专注的做过什么事情么，显然没有，所以到现在依然是一个默默无闻酱油男。或许我专注的研究过一些东西，像一些与计算机技术有关的事情，但多数都是三分钟热，坚持啊，忍耐啊，混蛋。。。我怎么一样都没做到！ 周围的各种人和事早已经在不停的警示着我了，我总是后知后觉。包子对TT的认知一点儿也没错，我身上少了他对技术的那份纯粹，少了他那份面对代码时的激情。新来的同事，南开的高材生ttwait，为毛人家就可以跟自己的初恋女友结婚啊，为毛人家毕业三年就买了房子跟自己最爱的女人过上我一直奢望的小日子啊。一直以为自己的专情在他的面前显得渺小无比…… 好了，千言万语，最终的目的只有一个，记下重要的东西，时时刻刻警示自己。记住要专注。 // 5) { sendMessage("gtbTranslateLibReady", {"gtbTranslateError" : true}); return; } setTimeout(checkLibReady, 100);}gtbTranslateOnElementLoaded = function () { lib = google.translate.TranslateService({}); sendMessage("{EVT_LOADED}", {}, []); var data = document.getElementById("gtbTranslateElementCode"); data.addEventListener("gtbTranslate", onTranslateRequest, true); data.addEventListener("gtbTranslateCheckReady", onCheckReady, true); data.addEventListener("gtbTranslateRevert", onRevert, true); checkLibReady();};function onCheckReady() { var ready = lib.isAvailable(); sendMessage("gtbTranslateLibReady", {"gtbTranslateError" : !ready});}function onTranslateRequest() { var data [...]]]></description>
			<content:encoded><![CDATA[<p>如果不是老板在中秋节的邮件中反反复复的出现这句话，我想我这辈子也不会用这么句傻逼的话来做任何东西的标题。</p>
<p>上面说了，这是句傻逼到爆的话。但是昨天晚上发生的一件事情让我真正的意识到自己比这句话更傻逼。解释得再多事情都已经发生了，也已经影响到某人的心情，真的对不起，为了自己喜欢的人承受寂寞是我应该做到的，我却忽然脑子进水&#8230; &#8230;</p>
<p>到后来，所想到的再也不只是感情上的。活了二十多年，我真正长期专注的做过什么事情么，显然没有，所以到现在依然是一个默默无闻酱油男。或许我专注的研究过一些东西，像一些与计算机技术有关的事情，但多数都是三分钟热，坚持啊，忍耐啊，混蛋。。。我怎么一样都没做到！</p>
<p>周围的各种人和事早已经在不停的警示着我了，我总是后知后觉。<a href="http://www.baozi.in/2010/09/look-myself-and-my-friend-tt/">包子对TT的认知</a>一点儿也没错，我身上少了他对技术的那份纯粹，少了他那份面对代码时的激情。新来的同事，南开的高材生ttwait，为毛人家就可以跟自己的初恋女友结婚啊，为毛人家毕业三年就买了房子跟自己最爱的女人过上我一直奢望的小日子啊。一直以为自己的专情在他的面前显得渺小无比……</p>
<p>好了，千言万语，最终的目的只有一个，记下重要的东西，时时刻刻警示自己。记住要专注。</p>
<p><script id="gtbTranslateElementCode">// <![CDATA[
var gtbTranslateOnElementLoaded;(function(){var lib = null;var checkReadyCount = 0;function sendMessage(message, attrs) {  var data = document.getElementById("gtbTranslateElementCode");  for (var p in attrs) {    data.removeAttribute(p);  }  for (var p in attrs) {    if ("undefined" != typeof attrs[p]) {      data.setAttribute(p, attrs[p]);    }  }  var evt = document.createEvent("Events");  evt.initEvent(message, true, false);  document.dispatchEvent(evt);}function checkLibReady (){  var ready = lib.isAvailable();  if (ready) {    sendMessage("gtbTranslateLibReady", {"gtbTranslateError" : false});    return;  }  if (checkReadyCount++ > 5) {    sendMessage("gtbTranslateLibReady", {"gtbTranslateError" : true});    return;  }  setTimeout(checkLibReady, 100);}gtbTranslateOnElementLoaded = function () {  lib = google.translate.TranslateService({});  sendMessage("{EVT_LOADED}", {}, []);  var data = document.getElementById("gtbTranslateElementCode");  data.addEventListener("gtbTranslate", onTranslateRequest, true);  data.addEventListener("gtbTranslateCheckReady", onCheckReady, true);  data.addEventListener("gtbTranslateRevert", onRevert, true);  checkLibReady();};function onCheckReady() {  var ready = lib.isAvailable();  sendMessage("gtbTranslateLibReady", {"gtbTranslateError" : !ready});}function onTranslateRequest() {  var data = document.getElementById("gtbTranslateElementCode");  var orig = data.getAttribute("gtbOriginalLang");  var target = data.getAttribute("gtbTargetLang");  lib.translatePage(orig, target, onProgress);}function onProgress(progress, opt_finished, opt_error) {  sendMessage("gtbTranslateOnProgress", {"gtbTranslateProgress" : progress,       "gtbTranslateFinished" : opt_finished, "gtbTranslateError" : opt_error});}function onRevert() {  lib.restore();}})(); (function(){var d=window,e=document;function f(b){var a=e.getElementsByTagName("head")[0];a||(a=e.body.parentNode.appendChild(e.createElement("head")));a.appendChild(b)}function _loadJs(b){var a=e.createElement("script");a.type="text/javascript";a.charset="UTF-8";a.src=b;f(a)}function _loadCss(b){var a=e.createElement("link");a.type="text/css";a.rel="stylesheet";a.charset="UTF-8";a.href=b;f(a)}function _isNS(b){b=b.split(".");for(var a=d,c=0;c<b.length;++c)if(!(a=a[b[c]]))return false;return true}
function _setupNS(b){b=b.split(".");for(var a=d,c=0;c<b.length;++c)a=a[b[c]]||(a[b[c]]={});return a}d.addEventListener&#038;&#038;typeof e.readyState=="undefined"&#038;&#038;d.addEventListener("DOMContentLoaded",function(){e.readyState="complete"},false);
if (_isNS('google.translate.Element')){return}var c=_setupNS('google.translate._const');c._cl='zh-CN';c._cuc='gtbTranslateOnElementLoaded';c._cac='';c._cam='lib';var h='translate.googleapis.com';var b=(window.location.protocol=='https:'?'https://':'http://')+h;c._pah=h;c._pbi=b+'/translate_static/img/te_bk.gif';c._pci=b+'/translate_static/img/te_ctrl3.gif';c._phf=h+'/translate_static/js/element/hrs.swf';c._pli=b+'/translate_static/img/loading.gif';c._plla=h+'/translate_a/l';c._pmi=b+'/translate_static/img/mini_google.png';c._ps=b+'/translate_static/css/translateelement.css';c._puh='translate.google.com';_loadCss(c._ps);_loadJs(b+'/translate_static/js/element/main_zh-CN.js');})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2010/09/22/%e8%b6%8a%e4%b8%93%e6%b3%a8%ef%bc%8c%e8%b6%8a%e6%88%90%e5%8a%9f/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>厦门</title>
		<link>http://oyj.me/2010/09/05/amoy/</link>
		<comments>http://oyj.me/2010/09/05/amoy/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 18:11:34 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[有病呻吟]]></category>
		<category><![CDATA[旅行]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=410</guid>
		<description><![CDATA[第一次和包子去旅行，对我来说是个比较特殊的历程，对包子来说，亦如我在Google map上面标注的那样，估计也只有蛋疼了。其实我心里还是很愧疚的。 在厦门住在海边的村子曾厝垵，确实如想象当中的那般安逸，但是由于某些不解释或者你懂的原因，基本上没有很蛋定的享受这般安逸。 其它的，也没啥好解释的了。就此过一下吧。]]></description>
			<content:encoded><![CDATA[<p><embed type="application/x-shockwave-flash" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&#038;hl=zh_CN&#038;feat=flashalbum&#038;RGB=0x000000&#038;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fjing.ouy%2Falbumid%2F5513117644228268753%3Falt%3Drss%26kind%3Dphoto%26hl%3Dzh_CN" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<p>第一次和包子去旅行，对我来说是个比较特殊的历程，对包子来说，亦如我在Google map上面标注的那样，估计也只有蛋疼了。其实我心里还是很愧疚的。</p>
<p>在厦门住在海边的村子曾厝垵，确实如想象当中的那般安逸，但是由于某些不解释或者你懂的原因，基本上没有很蛋定的享受这般安逸。</p>
<p>其它的，也没啥好解释的了。就此过一下吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2010/09/05/amoy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Imagick 批量转换彩色图片成黑白</title>
		<link>http://oyj.me/2010/08/16/php-imagick-color2gray/</link>
		<comments>http://oyj.me/2010/08/16/php-imagick-color2gray/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 03:53:54 +0000</pubDate>
		<dc:creator>ZZ</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[计算机相关]]></category>
		<category><![CDATA[imagick]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://oyj.me/?p=408</guid>
		<description><![CDATA[在推上跟mg12大神交流，说到非IE浏览器下面的页面变灰的方法，开始我还以为有类似IE下的滤镜的简单方法实现，没想到居然是改图片改CSS。。。ORZ 于是就写了这个批量转换的脚本，支持GIF动画。大致的原理是将图片逐帧逐像素的读出来，取到RGB色值，然后将当前的色值改成r*0.5+g*0.3+b*0.2，最后替换之即可。需要PHP 5.1.3和PECL Imagick 2.0.0或更高版本。WIN下的Imagick安装可以参照下这儿。 &#60;?php/**&#160;* Color images convert to gray.&#160;*&#160;* Author:zzjin (jin@ouyang.org)&#160;*&#160;* This script requires PHP 5.1.3+ and PECL Imagick 2.0.0+&#160;*/&#160;//原始图片目录$sourcePath = './';//存放黑白图片目录$targetPath = './gray/';//原始图片目录下的文件后缀名，LINUX下请注意大小写$fileType = array('jpg', 'png', 'gif');&#160;$files = array();foreach ($fileType as $val) {&#160;&#160; &#160;foreach (glob($sourcePath . '*.' . $val) as $file) {&#160;&#160; &#160; &#160; &#160;$im = new Imagick($file);&#160;&#160; &#160; &#160; &#160;$type = [...]]]></description>
			<content:encoded><![CDATA[<p>在推上跟<a href="http://twitter.com/mg12">mg12</a>大神交流，说到非IE浏览器下面的页面变灰的方法，开始我还以为有类似IE下的滤镜的简单方法实现，没想到居然是改图片改CSS。。。ORZ</p>
<p>于是就写了这个批量转换的脚本，支持GIF动画。大致的原理是将图片逐帧逐像素的读出来，取到RGB色值，然后将当前的色值改成r*0.5+g*0.3+b*0.2，最后替换之即可。需要PHP 5.1.3和PECL Imagick 2.0.0或更高版本。WIN下的Imagick安装可以参照下<a href="http://valokuva.org/?page_id=50" target="_blank">这儿</a>。<span id="more-408"></span></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">/**<br />&nbsp;* Color images convert to gray.<br />&nbsp;*<br />&nbsp;* Author:zzjin (</span><span style="color: Blue;">jin@ouyang.org</span><span style="color: #ffa500;">)<br />&nbsp;*<br />&nbsp;* This script requires PHP 5.1.3+ and PECL Imagick 2.0.0+<br />&nbsp;*/</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: #ffa500;">//原始图片目录</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$sourcePath</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">./</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//存放黑白图片目录</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$targetPath</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">./gray/</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//原始图片目录下的文件后缀名，LINUX下请注意大小写</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$fileType</span><span style="color: Gray;"> = </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">jpg</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">png</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">gif</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #00008b;">$files</span><span style="color: Gray;"> = </span><span style="color: Green;">array</span><span style="color: Olive;">()</span><span style="color: Gray;">;<br /></span><span style="color: Green;">foreach</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$fileType</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$val</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">foreach</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">glob</span><span style="color: Olive;">(</span><span style="color: #00008b;">$sourcePath</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">*.</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$val</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$file</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$im</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Imagick</span><span style="color: Olive;">(</span><span style="color: #00008b;">$file</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$type</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$im</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getImageFormat</span><span style="color: Olive;">()</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$nums</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$im</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getNumberImages</span><span style="color: Olive;">()</span><span style="color: Gray;">;<br />&nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$type</span><span style="color: Gray;"> != </span><span style="color: #8b0000;">'</span><span style="color: Red;">GIF</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> || </span><span style="color: #00008b;">$nums</span><span style="color: Gray;"> == </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">colorToGray</span><span style="color: Olive;">(</span><span style="color: #00008b;">$im</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">foreach</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$im</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$frame</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Blue;">colorToGray</span><span style="color: Olive;">(</span><span style="color: #00008b;">$frame</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">file_exists</span><span style="color: Olive;">(</span><span style="color: #00008b;">$targetPath</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">mkdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$targetPath</span><span style="color: Gray;">, </span><span style="color: Maroon;">0777</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$im</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">writeImages</span><span style="color: Olive;">(</span><span style="color: #00008b;">$targetPath</span><span style="color: Gray;"> . </span><span style="color: Blue;">basename</span><span style="color: Olive;">(</span><span style="color: #00008b;">$file</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">colorToGray</span><span style="color: Olive;">(</span><span style="color: Gray;">&amp;</span><span style="color: #00008b;">$im</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">$it</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$im</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getPixelIterator</span><span style="color: Olive;">()</span><span style="color: Gray;">;<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">foreach</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$it</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$row</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$pixels</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">foreach</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$pixels</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$column</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$pixel</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$colors</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$pixel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColor</span><span style="color: Olive;">()</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$gray</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$colors</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">r</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> * </span><span style="color: Maroon;">0.5</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$colors</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">g</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> * </span><span style="color: Maroon;">0.3</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$colors</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">b</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> * </span><span style="color: Maroon;">0.2</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$pixel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setColor</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">rgb(</span><span style="color: #00008b;">$gray</span><span style="color: Red;">,</span><span style="color: #00008b;">$gray</span><span style="color: Red;">,</span><span style="color: #00008b;">$gray</span><span style="color: Red;">)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$it</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">syncIterator</span><span style="color: Olive;">()</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: Blue;">?&gt;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://oyj.me/2010/08/16/php-imagick-color2gray/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

