[引子] Lilina的最新版本v0.7中文化仍然存在一定的问题。Deminy综合先前对其所做的测试和修改,总结如下6点供参考。
1. 该软件使用utf-8作为页面编码。如果要在页面标题中使用中文标题,应对conf.php文件内相关设定做如下类似修改:
// 将gb2312编码的文字转换成utf-8编码
$SITETITLE = mb_convert_encoding("Deminy收藏的RSS内容", "utf-8", "gb2312") ;
2. 由于页面程序执行过程可能很长(并因此导致超时),因此最好在conf.php文件中增加一行
set_time_limit(0); // 允许程序一直执行下去
3. 文件index.php对MAGPIE_CACHE_AGE的重新定义无效,因为此前在conf.php已经定义过了。(此条可能有待商榷)
正确的一种修改方式应该是在conf.php中修改相应部分为
2:
if (empty($_GET[force_update]) && empty($_SERVER['argv'][1]))
define('MAGPIE_CACHE_AGE',60 * 60 * 3);
else
define('MAGPIE_CACHE_AGE', 1);
4. 该软件使用一个第三方PHP类
Snoopy,版本号v1.0。Snoopy.class.inc文件的curl相应变量($curl_path)需要根据服务器配置重新设定。注意总共有2个Snoopy.class.inc文件:一个在./extlib/下,另外一个在./inc/extlib/.下。
6. 在./conf.php中增加一行
define('MAGPIE_FETCH_TIME_OUT', 360);
7. 经过上一步的修改后,并不能保证./index.php?force_update=1(强制更新RSS内容)能够有效地通过浏览器访问 (但可以通过命令行运行该程序,例如命令“php index.php force_update=1”)。
不能通过浏览器有效访问的原因是程序执行时间过长,导致超时。有几个地方可能中断程序执行:客户端浏览器的最长链接时间限制、服务器端服务器允许的程序运行最长时限、Snoopy程序中的fsockopen连接(用于读取RSS内容)超时。另外,如果以上都未超时,某些HTTP协议的具体实现方式也可能规定在指定时限内没有数据传输则断开HTTP连接。
如果仍然出现访问超时的情形,建议用户尝试使用以下做法避免超时(但暂不能明确确定具体是哪一种原因导致超时
2):
7.1 Snoopy.class.inc中将$_fp_timeout设一个比较大的值,例如180(基本没有什么效果);
7.2 去处那些访问困难的RSS种子,或者将其移到最后(无可奈何之举);
7.3 使用cron脚本通过命令行执行“php index.php force_update=1”,而不要通过浏览器(最好的办法)。
[注1] $_SERVER['argv'][1]参数是为了便于用命令行方式强制更新,主要用于cron。此处写法非常简略。
[注2] 如果在页面执行的时候能够不断输出HTML,则不会出现超时的现象。
在deminy最初开始使用RSS阅读器的时候,Ben推荐Bloglines.com,Simonkey推荐RSSOwl。Deminy最终选择了RSSOwl。Bloglines.com是一款在线阅读器,RSS信息存放在该网站上,因此可以在任何地方上网后使用它。但感觉用起来的不便之处在于首先必须登陆该网站后才能阅读RSS内容;其次,当你打开一个RSS后,不管你有没有真的阅读其RSS的内容,Bloglines都假设你阅读过该RSS了,下次再访问的时候便会隐藏掉你“已经阅读过”的内容,但deminy的习惯往往是翻来
引用于: 1月 22, 15:21