<?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>浩行天下 ghSky-&#62;Blog &#187; PHP</title>
	<atom:link href="http://ghsky.com/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://ghsky.com</link>
	<description>热衷于前端技术 (X)HTML, CSS, JavaScript</description>
	<lastBuildDate>Sat, 24 Jul 2010 09:30:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<atom:link rel='hub' href='http://ghsky.com/?pushpress=hub'/>
		<item>
		<title>又是好久没写Blog</title>
		<link>http://ghsky.com/2010/05/long-time-no-update-blog.html</link>
		<comments>http://ghsky.com/2010/05/long-time-no-update-blog.html#comments</comments>
		<pubDate>Wed, 12 May 2010 15:53:52 +0000</pubDate>
		<dc:creator>ghSky</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ghsky.com/?p=292</guid>
		<description><![CDATA[转眼一看上篇博客文章，又快2个月没有更新了，之前一直说要更新要更新，其实也有挺多技术文章想分享分享的，可是总是因为这样那样的原因都没来得及记录下来，真是比较惭愧啊~今天突然想想，再忙还是应该找时间来写一下啦，也算是练练手吧~之前记得看过一篇文章，上面说程序员应该具有的素质，其中一条就是说要保持写作，当然也包括写blog了，我想可能这就是要保持一种交流的能力，以及一种表达的能力吧~ 前段时间说要学习PHP，后来果真就把《PHP和MYSQL WEB开发》借来看了看，到不久前，其实已经大体浏览的一遍，不过自认为实际没掌握什么，因为没有项目经历，或者说是没有更多的实践机会，所以导致很多只是在眼前飘过，但实际并未掌握~其实一直也想找机会来实践实践的，因此也想找机会做个项目试试，不过到现在还没有实际去做点儿什么 不过一直和工作室吴迪有交流，他说PHP的很多特性比较恶心，当时没在意，不过后来想想说得的确有道理，最直接的一个就是各种函数的命名就是一个巨恶心的挑战，这里就不多说了，网上已经很多对PHP的评价的文章~后来一次偶然机会看到这个分享《Python于Web 2.0网站的应用》 就对Python产生了不少兴趣，后来和BlueF聊的时候，他也推荐我去看看Python，所以就在图书馆找了《Python核心编程》来看看~说实在的，在图书馆找本Python的书好困难啊，英文原版还有些，中文的基本就没有，要么就是被借走了，现在这本也是我找好久终于在一个角落找到的哈~当时还挺兴奋的就翻了不少看看~看到前面作者有说对于JavaScript的程序员，学习Python也比较简单，所以我现在也坚定了学习Python的信念，虽然PHP还是当前WEB开发的第一语言，不过自己只想了解了解就好，对于Python还是想能够掌握得深一些更好~目前《Python核心编程》已经看了数章了，感觉还不错，觉得Python这门语言的确是很需要强调Simple的语言，它独有的强制代码缩进方式也有不少优势，而且很多特性也比较有意思，比如这个写法[2 ** x for x in range(5)]，就可以简单的列举出2的0到4次方，再如(x, y) = (1, 2); (y, x) = (x, y)就能很方便的交换两个变量而不需要传统编程语言的方法，真是神奇哈~ 不过Python好多方式和JavaScript的确不大相同，所以在学习过程中我一定要注意和JS的对比，以便能够熟练掌握两门语言而不至于相互混淆~所以以后一定要多写写读书笔记才行啊~ 接着说说JavaScript方面的事儿吧，前段时间大军让我研究研究Web编辑器的技术，后来就看到不少文章，包括Range，Selection，execCommand等技术的东东，这方面之前真的接触太少太少了，很难马上就能搞定，后来自己又大体研究了研究Kissy Editor的代码，确实有不少收获，不仅包括前面那些自己接触甚少的技术，更是包括JavaScript架构方面的概念，感觉Kissy这个框架的架构方面的确有很多先进的地方需要我去理解，同时也真的发现接触的JavaScript越来也多，自己的无知也就暴露地更加明显，尤其是架构方面的东东，真是很匮乏啊~ 再接着说，5月初的时候，有了人生第一次面试经历吧，不过是电话面试哈，面试方是百度，也颇让自己有些压力，通过面试，发现自己在基础知识方面还是有不少漏洞啊，特别是很久没写页面，很多页面相关知识也是忘记得差不多了，面试过程中很多原来了解的东东，回答过程中也答得不满意，可能由于紧张吧，不过准确地说应该是自己掌握得还不足吧，不过总的来说面试还算顺利吧，貌似要等二面~最近一段时间，由于工作室另外一个项目的原因，需要去研究研究Googe Maps API，所以最近在研究这个东东，难度不算大吧，主要是看文档和实际运用，只是很感叹Google对API的设计强大、精巧，真的很难想像这些JavaScript是怎么实现的，真是膜拜得不行了~ 那天在图书馆，还顺便借了一本《版本控制之道》在看，之前项目中一直在使用，不过里面好多特性都没有用到，这次算是借书来过一遍吧，了解了解SVN的基本特性~ 差不多了，前段时间大概就这么样吧，总的来说还是很忙的，很多事儿要弄，也有很多知识自己得学，当然现在课也没逃多少，所以也就感觉比较忙啦~不过这应该就算是充实吧，希望自己在忙碌中有条不紊地进步吧~]]></description>
			<content:encoded><![CDATA[<p>转眼一看上篇博客文章，又快2个月没有更新了，之前一直说要更新要更新，其实也有挺多技术文章想分享分享的，可是总是因为这样那样的原因都没来得及记录下来，真是比较惭愧啊~今天突然想想，再忙还是应该找时间来写一下啦，也算是练练手吧~之前记得看过一篇文章，上面说程序员应该具有的素质，其中一条就是说要保持写作，当然也包括写blog了，我想可能这就是要保持一种交流的能力，以及一种表达的能力吧~</p>
<p>前段时间说要学习PHP，后来果真就把<a href="http://book.douban.com/subject/3549421/" target="_blank">《PHP和MYSQL WEB开发》</a>借来看了看，到不久前，其实已经大体浏览的一遍，不过自认为实际没掌握什么，因为没有项目经历，或者说是没有更多的实践机会，所以导致很多只是在眼前飘过，但实际并未掌握~其实一直也想找机会来实践实践的，因此也想找机会做个项目试试，不过到现在还没有实际去做点儿什么 <img src='http://ghsky.com/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> 不过一直和工作室吴迪有交流，他说PHP的很多特性比较恶心，当时没在意，不过后来想想说得的确有道理，最直接的一个就是各种函数的命名就是一个巨恶心的挑战，这里就不多说了，网上已经很多对PHP的评价的文章~后来一次偶然机会看到这个分享<a href="http://www.slideshare.net/hongqn/qcon2010-3881323" target="_blank">《Python于Web 2.0网站的应用》 </a>就对Python产生了不少兴趣，后来和<a href="http://bluef.org/wp/" target="_blank">BlueF</a>聊的时候，他也推荐我去看看Python，所以就在图书馆找了<a href="http://book.douban.com/subject/3112503/" target="_blank">《Python核心编程》</a>来看看~说实在的，在图书馆找本Python的书好困难啊，英文原版还有些，中文的基本就没有，要么就是被借走了，现在这本也是我找好久终于在一个角落找到的哈~当时还挺兴奋的就翻了不少看看~看到前面作者有说对于JavaScript的程序员，学习Python也比较简单，所以我现在也坚定了学习Python的信念，虽然PHP还是当前WEB开发的第一语言，不过自己只想了解了解就好，对于Python还是想能够掌握得深一些更好~目前<a href="http://book.douban.com/subject/3112503/" target="_blank">《Python核心编程》</a>已经看了数章了，感觉还不错，觉得Python这门语言的确是很需要强调Simple的语言，它独有的强制代码缩进方式也有不少优势，而且很多特性也比较有意思，比如这个写法[2 ** x for x in range(5)]，就可以简单的列举出2的0到4次方，再如(x, y) = (1, 2); (y, x) = (x, y)就能很方便的交换两个变量而不需要传统编程语言的方法，真是神奇哈~ <img src='http://ghsky.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':biggrin:' class='wp-smiley' /> 不过Python好多方式和JavaScript的确不大相同，所以在学习过程中我一定要注意和JS的对比，以便能够熟练掌握两门语言而不至于相互混淆~所以以后一定要多写写读书笔记才行啊~</p>
<p>接着说说JavaScript方面的事儿吧，前段时间<a href="http://www.webbw.com/" target="_blank">大军</a>让我研究研究Web编辑器的技术，后来就看到不少文章，包括Range，Selection，execCommand等技术的东东，这方面之前真的接触太少太少了，很难马上就能搞定，后来自己又大体研究了研究<a href="http://kissy.googlecode.com/svn/trunk/src/editor/demo/basic.html" target="_blank">Kissy Editor</a>的代码，确实有不少收获，不仅包括前面那些自己接触甚少的技术，更是包括JavaScript架构方面的概念，感觉Kissy这个框架的架构方面的确有很多先进的地方需要我去理解，同时也真的发现接触的JavaScript越来也多，自己的无知也就暴露地更加明显，尤其是架构方面的东东，真是很匮乏啊~ <img src='http://ghsky.com/wp-includes/images/smilies/icon_sad.gif' alt=':sad:' class='wp-smiley' /> 再接着说，5月初的时候，有了人生第一次面试经历吧，不过是电话面试哈，面试方是百度，也颇让自己有些压力，通过面试，发现自己在基础知识方面还是有不少漏洞啊，特别是很久没写页面，很多页面相关知识也是忘记得差不多了，面试过程中很多原来了解的东东，回答过程中也答得不满意，可能由于紧张吧，不过准确地说应该是自己掌握得还不足吧，不过总的来说面试还算顺利吧，貌似要等二面~最近一段时间，由于工作室另外一个项目的原因，需要去研究研究<a href="http://code.google.com/apis/maps/" target="_blank">Googe Maps API</a>，所以最近在研究这个东东，难度不算大吧，主要是看文档和实际运用，只是很感叹Google对API的设计强大、精巧，真的很难想像这些JavaScript是怎么实现的，真是膜拜得不行了~ <img src='http://ghsky.com/wp-includes/images/smilies/icon_razz.gif' alt=':razz:' class='wp-smiley' /> </p>
<p>那天在图书馆，还顺便借了一本<a href="http://book.douban.com/subject/2038779/" target="_blank">《版本控制之道》</a>在看，之前项目中一直在使用，不过里面好多特性都没有用到，这次算是借书来过一遍吧，了解了解SVN的基本特性~</p>
<p>差不多了，前段时间大概就这么样吧，总的来说还是很忙的，很多事儿要弄，也有很多知识自己得学，当然现在课也没逃多少，所以也就感觉比较忙啦~不过这应该就算是充实吧，希望自己在忙碌中有条不紊地进步吧~ <img src='http://ghsky.com/wp-includes/images/smilies/icon_smile.gif' alt=':smile:' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://ghsky.com/2010/05/long-time-no-update-blog.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>最新文章函数不显示指定分类</title>
		<link>http://ghsky.com/2008/07/function-of-recent-posts-none-display-some-categories.html</link>
		<comments>http://ghsky.com/2008/07/function-of-recent-posts-none-display-some-categories.html#comments</comments>
		<pubDate>Fri, 18 Jul 2008 15:35:03 +0000</pubDate>
		<dc:creator>ghSky</dc:creator>
				<category><![CDATA[Site]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ghsky.com/?p=199</guid>
		<description><![CDATA[启用了Video分类，但是不希望这个分类的文章在“最新文章”中显示，怎么办呢？只能过滤分类了。可是现在的WordPress数据库比较奇特，在文章的wp_posts属性里面category已经被全部指定为0 （汗一个，那文章分类在哪里呢？）原来在现在的WordPress中引用了term_taxonomy(下简称tt)、term_relationships(下简称tr)来确定分类关系~~自己还是不大明白为啥要用那么复杂的办法捏 怎么排除这个分类的文章呢？参考了“相关日志”这个插件的一些代码，不过作者的思路比较高深，我这种随便玩玩php的人自然很难看懂，所以就用了一些比较笨的办法来实现相关的排除分类。这里就摘取了相关的一段代码：p.s.排除的分类ID修改变量$ex_id即可 //Recent Posts function get_recent_posts($no_posts = 10, $before = ' ', $after = ' ', $show_pass_post = false, $skip_posts = 0, $ex_id = '47') { global $wpdb, $post, $table_prefix; $exclude = explode(",",$ex_id); $q = "SELECT tt.term_id, tr.object_id FROM ". $table_prefix ."term_taxonomy tt, " . $table_prefix . "term_relationships tr WHERE tt.taxonomy = 'category' AND [...]]]></description>
			<content:encoded><![CDATA[<p>启用了Video分类，但是不希望这个分类的文章在“最新文章”中显示，怎么办呢？只能过滤分类了。可是现在的WordPress数据库比较奇特，在文章的wp_posts属性里面category已经被全部指定为0 <img src='http://ghsky.com/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> （汗一个，那文章分类在哪里呢？）原来在现在的WordPress中引用了term_taxonomy(下简称tt)、term_relationships(下简称tr)来确定分类关系~~自己还是不大明白为啥要用那么复杂的办法捏 <img src='http://ghsky.com/wp-includes/images/smilies/icon_question.gif' alt=':question:' class='wp-smiley' /> </p>
<p>怎么排除这个分类的文章呢？参考了“相关日志”这个插件的一些代码，不过作者的思路比较高深，我这种随便玩玩php的人自然很难看懂，所以就用了一些比较笨的办法来实现相关的排除分类。这里就摘取了相关的一段代码：p.s.排除的分类ID修改变量$ex_id即可</p>
<pre class="brush:php">
//Recent Posts
function get_recent_posts($no_posts = 10, $before = '
<li>', $after = '</li>

', $show_pass_post = false, $skip_posts = 0, $ex_id = '47') {
    global $wpdb, $post, $table_prefix;
	$exclude = explode(",",$ex_id);
	$q = "SELECT tt.term_id, tr.object_id FROM ". $table_prefix ."term_taxonomy tt, " . $table_prefix . "term_relationships tr WHERE tt.taxonomy = 'category' AND tt.term_taxonomy_id = tr.term_taxonomy_id";
	$cats = $wpdb->get_results($q);
	$cnt = 0;
	foreach($cats as $cat) {
		if (in_array($cat->term_id, $exclude) == true){
			$ex_post_id[$cnt] = $cat->object_id;
			$cnt++;
		}
	}
	$ex_post_out = 'p.ID !=';
	for ($i = 0; $i <= $cnt-2; $i++) {
		$ex_post_out = $ex_post_out . $ex_post_id[$i] . ' AND p.ID !=';
	}
	$ex_post_out .= $ex_post_id[$cnt-1];
    $request = "SELECT p.ID, p.post_title, p.post_date, p.post_content FROM $wpdb->posts p WHERE $ex_post_out AND p.post_status = 'publish' AND p.post_type = 'post'";
        if(!$show_pass_post) { $request .= "AND post_password ='' "; }
    $request .= "ORDER BY post_date DESC LIMIT $skip_posts, $no_posts";
    $posts = $wpdb->get_results($request);
    $output = '';
...
</pre>
<p>大概原来就是先从表中确定是category的项目，然后再对照tt.term_taxonomy_id = tr.term_taxonomy_id的项目，即把分类和文章ID挂上勾，然后再查找所要排除的分类的ID，再从中筛选出来该分类（或几个分类）的文章ID生成数组ex_post_id，再用一点儿字符串链接的方法结合成字符串p.ID != xxx以便在查询最新文章的时候排除这个几个ID，然后就大功告成了~~~研究这个真的花了不少时间，首先mysql的查询就比较头大，然后php数组问题也卡了一下（原来数组赋值和pascal一样，只不过不用事先声明数组），基本就这样咯~~</p>
]]></content:encoded>
			<wfw:commentRss>http://ghsky.com/2008/07/function-of-recent-posts-none-display-some-categories.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最近对WP的一些动作</title>
		<link>http://ghsky.com/2008/06/some-actions-to-my-wordpress.html</link>
		<comments>http://ghsky.com/2008/06/some-actions-to-my-wordpress.html#comments</comments>
		<pubDate>Thu, 12 Jun 2008 04:22:22 +0000</pubDate>
		<dc:creator>ghSky</dc:creator>
				<category><![CDATA[Site]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ghsky.com/?p=145</guid>
		<description><![CDATA[最近，在小影唆使下，更新了原来的破主题，其实自己高考前就想高考完了换主题。他小子给我看了个不错的主题Fresh News，看似很不错，不过是收费的，而且费用高达99.95美刀（额滴神啊~~~），快有一个Windows Vista Released贵了……不过那小子不知从哪里居然搞到了主题文件，汗，佩服他一下……但是用上后，发现这个主题那是相当复杂，复杂，……，复杂！个人使用不了那么多功能，所以我就想正好练练PHP CSS吧，就开始了精简工作，和那小子一起搞。经过4天的努力，基本搞定了，就是现在这个应用的样子。在这期间我算是认识到了JS的威力，可怕啊，还要再次多谢刺猬哥哥的帮忙哦，哇哈哈，又是他帮忙加了一些不错功能（主要是comments.php里面）！主题兼容性没有自己验证，让小影验证了下，应该基本没问题！哇哈哈，终于搞定了！不过这个主题像这样改了也许会有侵权的嫌疑，所以当然不能把这个主题发布咯，希望原主题的作者表来找我俩的麻烦（其实罪魁祸首是那个提供下载的人）…… 昨天随便逛的时候，发现了个相当不错的主题，可惜晚发现了，不然现在可能我就用上那个主题了，大家没事可以去看看，居然那作者还是第一次发主题，就这么精美，Orz 主题：INSay 今天随便转了转了，又发现我爱水煮鱼上面的一篇不错的文章，转过来收藏+共享！ Popularity Contest 转换到 PostViews 前面在通过优化插件来提高 WordPress 运行效率中谈到：我一直使用的 Popularity Contest 这个插件，这个是非常好的插件，但是它一个很大的问题是对数据库操作实在太多了，因为要统计一篇日志在 single category archive home feed 等下的被阅读的次数，其实个人觉得只有在 single 下阅读次数是最重要的，如果要求提供 WordPress 运行效率的情况下，最好转换到 PostViews 这个插件。今天就把转换函数贴出来，本来想用 SQL 转换的，后来发现一个循环更容易解决问题，代码如下：]]></description>
			<content:encoded><![CDATA[<p>最近，在<a href="http://cople.cn/" target="_blank">小影</a>唆使下，更新了原来的破主题，其实自己高考前就想高考完了换主题。他小子给我看了个不错的主题<a href="http://freshnews.premiumnewstheme.com/">Fresh News</a>，看似很不错，不过是收费的，而且费用高达99.95美刀（额滴神啊~~~），快有一个Windows Vista Released贵了……不过那小子不知从哪里居然搞到了主题文件，汗，佩服他一下……但是用上后，发现这个主题那是相当复杂，复杂，……，复杂！个人使用不了那么多功能，所以我就想正好练练PHP CSS吧，就开始了精简工作，和那小子一起搞。经过4天的努力，基本搞定了，就是现在这个应用的样子。在这期间我算是认识到了JS的威力，可怕啊，还要再次多谢<a href="http://soniccube.net">刺猬哥哥</a>的帮忙哦，哇哈哈，又是他帮忙加了一些不错功能（主要是comments.php里面）！主题兼容性没有自己验证，让小影验证了下，应该基本没问题！哇哈哈，终于搞定了！不过这个主题像这样改了也许会有侵权的嫌疑，所以当然不能把这个主题发布咯，希望原主题的作者表来找我俩的麻烦（其实罪魁祸首是那个提供下载的人）……</p>
<p>昨天随便逛的时候，发现了个相当不错的主题，可惜晚发现了，不然现在可能我就用上那个主题了，大家没事可以去看看，居然那作者还是第一次发主题，就这么精美，Orz 主题：<a href="http://www.ineversay.com/wordpress/insay.html">INSay</a><br />
<span id="more-145"></span><br />
今天随便转了转了，又发现<a href="http://fairyfish.net/">我爱水煮鱼</a>上面的一篇不错的文章，转过来收藏+共享！</p>
<p><a href="http://fairyfish.net/2008/01/02/popularity-contest-to-postviews/">Popularity Contest 转换到 PostViews</a><br />
前面在通过优化插件来提高 WordPress 运行效率中谈到：我一直使用的 Popularity Contest 这个插件，这个是非常好的插件，但是它一个很大的问题是对数据库操作实在太多了，因为要统计一篇日志在 single category archive home feed 等下的被阅读的次数，其实个人觉得只有在 single 下阅读次数是最重要的，如果要求提供 WordPress 运行效率的情况下，最好转换到 PostViews 这个插件。今天就把转换函数贴出来，本来想用 SQL 转换的，后来发现一个循环更容易解决问题，代码如下：</p>
<pre class="brush:php">
<?php
function Popularity_Contest_to_PostViews() {
	global $wpdb;
	$q = "select id from wp_posts where post_type='post' or post_type='page'";
	$post_ids = $wpdb->get_results($q);
	foreach ($post_ids as $post_id ){
		$id = $post_id -> id;
		$sql = "SELECT single_views FROM wp_ak_popularity WHERE post_id = $id";
		$views = $wpdb->get_results($sql);
		if ($views) {
			$view = $views[0]->single_views;
			if($view){
				if(!update_post_meta($id, 'views', $view)) {
					add_post_meta($id, 'views', $view, true);
				}
			}
		}
	}
}?>
<?php Popularity_Contest_to_PostViews(); ?>
</pre>
<p>在激活 PostViews 插件之前，你把以上代码复制到你的模板的 footer.php 中，让其运行一次，删除以上代码，然后安装 PostViews 插件。</p>
<p>该函数在本站测试成功，但是为了保证你的数据的安全，请在使用之前，最好备份好数据库，以免出错，由此出现错误，本站概不负责。挖哈哈！</p>
<p>所以也把自己的POP插件卸载了，换上了PostViews，使用中，体会以后慢慢说，不过看首页的数据库查询量是下来了，从3X到了2X！</p>
]]></content:encoded>
			<wfw:commentRss>http://ghsky.com/2008/06/some-actions-to-my-wordpress.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
