日志分类:程序设计

配置 Nginx 支持 CGI

2009-08-21 18:19  |  分类:应用技术, 程序设计

安装所需的 perl fcgi 模块:
apt-get install libfcgi-perl libfcgi-procmanager-perl

用 perl 写一个 daemon 程序来处理 cgi 文件:
全文阅读 »

打开 wp-includes/js/quicktags.dev.js ,找到

  1. edButtons[edButtons.length] =
  2. new edButton('ed_code'
  3. ,'code'
  4. ,'<code>'
  5. ,'</code>'
  6. ,'c'
  7. );

在下面添加:

  1. edButtons[edButtons.length] =
  2. new edButton('ed_coolcode'
  3. ,'coolcode'
  4. ,'<coolcode linenum=\"off\">'
  5. ,'</coolcode>'
  6. ,'x'
  7. );

再找到

t.Buttons[t.Buttons.length] = new edButton(name+'_code','code','<code>','</code>','c');

在下面添加一行:

t.Buttons[t.Buttons.length] = new edButton(name+'_coolcode','coolcode','<coolcode linenum=\"off\">','</coolcode>','x');

然后对 quicktags.js 做同样的修改。

CoolCode 的介绍: http://www.coolcode.cn/?action=show&id=26

WordPress 自定义侧边栏部件

2008-02-29 17:12  |  分类:程序设计

想在博客的侧边栏显示随机文章,使用了“中文 WordPress 工具箱”插件,功能介绍里说是可以显示随机文章的,但是这个插件比较老了,不支持 widget,便想到了改造一下这个插件。查了一下部件的语法。其语法如下:

  1. <?php
  2. function widget_mywidget($args) { 
  3. extract($args);
  4. ?>
  5. <?php echo $before_widget; ?>
  6. <?php echo $before_title . 'My Widget' . $after_title; ?>
  7. My Widget
  8. <?php echo $after_widget; ?>
  9. <?php
  10. }
  11. register_sidebar_widget('My Widget', 'widget_mywidget');
  12. ?>

register_sidebar_widget 注册函数之后,输出部件标题 "My Widget" 及內容 "My Widget"。
又从 WordPress Widgets 文档中知道:不能在插件导入之后执行任何代码,要使用 plugins_loaded 这个 hook,所以 add_action 的对象即是 plugins_loaded。

最后,在插件程序文件 mulberrykit.php 后增加了如下代码:

  1. function widget_random_posts_init() {
  2.  
  3.   if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
  4.     return;
  5.  
  6.   function random_posts_sidebar_module($args) {
  7.     extract($args);
  8.  
  9.     echo $before_widget . $before_title . $title . $after_title;
  10.     echo "<h2>随机文章</h2><ul>";
  11.       random_posts();
  12.     echo "</ul>";
  13.     echo $after_widget;
  14.   }
  15.  
  16.   register_sidebar_widget('Random Posts module', 'random_posts_sidebar_module');
  17. }
  18.  
  19. add_action('plugins_loaded', 'widget_random_posts_init');

在管理后台的 外观 -> Widgets 中就可以找到 Random Posts module 这个部件了。

ExtMail 列表邮件名乱码

2007-10-11 10:24  |  分类:程序设计

用 php 程序通过 smtp 发邮件,发现使用 ExtMail 列表中文邮件时邮件名是乱码,而且邮件被 Amavisd-new 打上了垃圾邮件的标签,且在邮件头中有以下提示:
X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data
而在其它邮件系统中显示是正常的,在 Foxmail 中也是正常的。
对比接收到的正常邮件,发现邮件名是 base64 编码了的,于是在发送邮件时进行编码:
$subject = "=?GB2312?B?".base64_encode($subject)."?=";
这时候邮件不被标记为垃圾邮件了,但是邮件名列表时还是乱码。仔细对比后发现,是程序中 Subject: 后少了个空格。
看来,程序书写不够仔细;ExtMail 提取非规范书写的 Subject 内容时有点问题。

PHP 连接 MSSQL

2006-06-02 16:48  |  分类:程序设计

1. Windows 下
把 php.ini 放到 C:\WINNT 下,
设置 extension_dir ,如:
extension_dir = "C:\php-4.3.11\extensions"
取消 mssql.dll 的注释:
extension=php_mssql.dll
 
Web Server 和 MS SQL SERVER 在同一部机器:
mssql_connect("HOST\INSTANCE","USER","PWD");
 
远程连接需要先在 Web Server 安装 MS SQL SERVER 客户端工具,然后才能连接:
mssql_connect("SERVER","USER","PWD");
 
2. UNIX/Linux 下
先安装 freetds-0.63
./configure --prefix=/usr/local/freetds
make
make install
 
安装 PHP 的时候:
--with-mssql=/usr/local/freetds
 
连接时需要加上端口号:
mssql_connect("IP:1433","USER","PWD");