为WordPress选择程式码显示插件

syntaxhighlighter evolved 为WordPress选择程式码显示插件

刚开始我只用引用(Quote)来显示程式码,随着程式码越来越多,引用已经不够用,我决定要加个程式码高亮显示的插件到WordPress里。

我前后共测试了5个这种插件,包括:

我也总结出,具体的要求:

  1. 不用修改WordPress,包括主题:我不希望因为一个插件而修改WordPress或主题,特别是有其他的选择的情况下。
  2. 显示行数:有行数的话,当讨论程式码时,就比较容易去指定特定一行。关于这一点,WP-Syntax预设是不显示行数的,所以我没有选择它。
  3. 支持可视化编辑器(Visual Editor):这是最严重的问题,有些插件在Visual Editor里会自动重编程式码以便在HTML下显示,这样会破坏原程式码,导致每次编辑时都要改程式码,改到我火都上来。SyntaxHighlighter Plus,Google Syntax Highlighter for WordPress和Syntax Highlighter for WordPress都有这个问题。

Continue reading »

根据浏览器语言重定向访客

gearor gadgets tech mag 根据浏览器语言重定向访客

最近我开了一个新网站,Gearor.com,以报导科技新闻为主。我为这个网站设计了中文(cn.gearor.com)及英文版本,所以我希望做到,当用户访问时,判断用户是否使用中文浏览器,若是便将用户带到中文页面。

一开头,我直观地在主页将所有中文浏览器转到中文页面。这样做有一个问题:就是在中文页面内,我放置了一条返回英文页面的连结,若中文用户想看英文内容,可按此连结。当我加入转向程式,即使点击了这条连结,还是会被带回到中文页面,变成中文用户到不了英文的主页,这是不能接受的。

Continue reading »

安装Kohana 3 PHP 框架

kohana 3 php logo 550x241 安装Kohana 3 PHP 框架
Kohana 3发布已经有一段时间,这个版本重新设计了大量的代码,其实最重要的改变是用HMVC设计模式取代MVC。至于什么是HMVC?以下几篇文章或许能帮大家理解:

  1. 浅谈HMVC模式
  2. 谈谈HMVC
  3. 说说HMVC

另外,虽然Kohana 3发布了,但Kohana 2还是会继续发展,原Kohana 2的用户可以放心继续使用。如果你是刚学Kohana的话,建议还是学Kohana 3。

和以往一样,Kohana 3的安装非常容易。这里可以下载Kohana 3。解压后,将Kohana文件夹上传到你的网站,当然你可以将文件夹改为任何你喜欢的名字。再来需要改一下权限,请将以下文件夹的权限改为777:

  1. application/cache
  2. application/logs

Continue reading »

PHP防止SQL Injection: Addslashes还是Mysql_real_escape_string

SQL Injection PHP防止SQL Injection: Addslashes还是Mysql real escape string
最近看了几篇关于防止SQL Injection的文章,跟大家分享一下我学到的东西。

PHP防止SQL Injection主要有两种做法,分别应用两个函数:addslashes()和mysql_real_escape_string()。早期一般用addslashes(),现在主要用mysql_real_escape_string(),这两个有什么分别呢?Alan Storm 作了以下的解释:

PHP’s mysql_real_escape_string function will, more or less, ask mysql what character(s) needs to be escaped, where the addslashses function will just add a backslash in front of and any single quote (‘), double quote (“), backslash (\) or NUL (the NULL byte) character.

我翻译如下:

PHP的mysql_real_escape_string函数会分析哪些字元需要进行处理,而addslashes则单纯对所有的单引号(‘),双引号(“),反斜线(\)和NUL字元加入反斜线。

在同一篇文章中,Waage说(翻译):

mysql_real_escape_string会为以下字元加入反斜线:
\x00, \n, \r, \, ‘, ” 和 \x1a. characters.
而addslash只为以下字元加反斜线:
‘ \ and NUL

Continue reading »

通用CSS样式表模版

CSSEditLogo 通用CSS样式表模版
每次设计一个新的网站,我们都要写一个新的CSS样式表,而当中的内容有很多是跟以往的设计类似,甚至一样,像是blockqoute, <h1>至<h6>等设定。因此,我一直想要整理出一个通用的CSS样式表模版(Master Stylesheet),里面包含一些最基本最常用的CSS设定。当开始设计一个新网站的时候,我们首先载入这个模版,就能马上完成了基本的设计,接下来,只要针对这个网站进行细节的设计,如果模版的设定不适合新网站,可以在新网站的CSS文件重写,CSS会自动覆盖模版的设定。

假设我们把模版命名为master.css,而网站的CSS文件为style.css,那我们可以在style.css开头加入以下语句,即可将模版导入:

@import "master.css";

Continue reading »