2006 年 5 月

用php将rss转化为json格式

要用php将rss转换成json,简单的转换思路是:
rss -> php array -> json
我们不必从头进行这些工作,pear已经提供了一些可用的类库,到命令行下面利用pear安装这些包
pear install channel://pear.php.net/XML_RSS-0.9.9
pear install channel://pear.php.net/HTML_AJAX-0.4.0
下面是一个简单的测试代码:
PLAIN TEXT
PHP:

<?php

require_once 'XML/RSS.php';

require 'HTML/AJAX/JSON.PHP';

 

$rss = new XML_RSS('http://www.ooso.net/index.php/feed/');

$rss->parse();

//var_dump($rss->getItems());

 

$json = new HTML_AJAX_JSON();

$js = $json->encode($rss->getItems());

 

echo $js;

?>

什么是json?
相关文章

评论 (3)

vim的的代码折叠

vim也是有代码折叠功能的,以前就知道,然而毕竟用的不多,这个功能基本上很少用。随着最近和gvim的亲密接触,对代码折叠功能逐渐熟悉起来。有一次打开一段php的代码 -- 比如PEAR.php,发现里面的代码自动被折叠了,将代码展开后,可以看到只要代码两边有/*{{{*/和/*}}}*/,就会被自动折叠。仔细搜索配置,其中有一句是重点:
foldmethod=marker
这样vim就会自动搜索代码,将{{{和}}}之间的内容折叠起来,而且代码结尾有一段小注释也不是无用的废料:
/* vim600: sw=4 ts=4 fdm=marker syn=php
*/
这段注释会被vim读取,并自动设置到环境变量里面。
关于代码折叠的用法,只要在vim中输入:
:help zo
就可以看到了不少相关的快捷键,需要一定的练习才可以得心应手:)
我的gvim配置内容又增加了:
colo zellner
set guifont=Courier_New:h11:cANSI nobackup tabstop=4 shiftwidth=4 foldmethod=marker
set fileencodings=utf-8,ucs-bom,chinese,taiwan,latin1
au BufRead * simalt ~x
我的.vimrc
set hlsearch ic ai wildmenu fileencodings=utf-8,gbk cindent tabstop=4 shiftwidth=4 foldmethod=marker nocompatible nopaste pastetoggle= <f11>
syn on
pastetoggle=粘贴模式切换可以避免自动缩进的带来的格式影响

一点 vim相关小发现:
google reader的上一篇,下一篇快捷键分别是j,k,和vim的光标移动键一致,不知道是巧合还是有意为之,如果是后者,那么google reader的开发者想必也是vim的粉丝:)
使用firefox查看网页源代码时,按一下"/",会显示搜索框,与vim的搜索一致,估计firefox的开发者也是vim爱好者:p

评论 (3)

还是说php实现singleton模式

这天考虑用php来singleton一下,看到一篇比较全面的总结 -- singleton模式的几种实现.其中总结的php5的实现:
PLAIN TEXT
PHP:

class MyClass

  {

     private static $instance;

 

      public static function singleton()

     {

         if (!isset(self::$instance)) {

             $c = __CLASS__;

             self::$instance = new $c;

          }

        return self::$instance;

 

  [...]

评论 (4)

ppform还真是个不错的工具 — php桌面程序帮手

最近又用上了ppform这个小工具,这东东的神奇之处在于可以用php象delphi一样快速开发出一个小工具,比如下面这个俺正在用的可以直接调用php函数的小东东,只用少量的代码,就完成了整个功能,如下:
PLAIN TEXT
PHP:

<?php require_once("ppform.php"); ?>

<?php

 

class __PPFORM__ extends TPPForm

{

 

  function genBtnClick($Sender)

  {

     $func = $this->funcList->Items[$this->funcList->ItemIndex];

     $this->codeEdit->Text = $func($this->strEdit->Text);

  }

 

  function Form1Create($Sender)

  {

   $this->funcList->SetItemIndex(0);

  }

 

  function reBtnClick($Sender)

  {

   if($this->codeEdit->Text) {

         $this->strEdit->Text = $this->codeEdit->Text;

         $this->codeEdit->Text = '';

   }

  }

 

} //end __PPFORM__

 

?>

贴上俺丑陋的小程序界面

缺点:

启动速度有点慢
不能直接发布应用程序,到论坛上看,人家说已经在计划发布一个sdk,可以满足这个需求

相关:
PPForm — 用 PHP 開發視窗應用程式

评论 (9)

反垃圾留言 - wordpress

似乎wordpress只要是开放了留言机制,垃圾留言就会无孔不入的钻进来.这几天服务器是相当的不稳定,十次访问倒有九次访问不到,最忠实的留言者却是那些卖vigra,car...之类的spamer,虽说我采用的是最有效也是最原始的人工审核--您还费什么劲啊.但是事实证明,spamer肯定是不认识中文的,而且估计使用的是comment bot,留言内容很稳定,频率也相当精准,广告内容基本上是英文,来源五花八门,要不就是一大把连接,要不就是buy...,被spam摧残了这么久,俺被迫拿起了科技产物的大棒--反spamer与之抗争!
今天首先启用spam karma,观察一下效果.
其它的手段还有更换comment表单的action啊,换flash表单啊等等,但是总觉得比较原始,不能代表先进生产力,这里先按下不表。哪位路过朋友有好招,麻烦留下支一声,我谢谢您。。

评论 (10)

vim 7.0发布

vim 7.0发布了.和vim 6.4比起来,有如下改动:

- Spell checking support for about 50 languages
- Intelligent completion for C, HTML, Ruby, Python, PHP, etc.
- Tab pages, each containing multiple windows
- Undo branches: never accidentally lose text again
- Vim script supports Lists and Dictionaries (similar to Python)
- Vim script profiling
- Improved Unicode support
- Highlighting of cursor line, cursor column and matching [...]

评论 (4)