PHP

PHPCMS 2008内的采集功能乱码问题解决办法

最近在玩PHPCMS,发现其中内置采集模块挺强大的。不过,在PHPCMS(UTF8)版本里,只要采集的页面是GB2312编码的,数据都有乱码。

其实,在spider/admin/admin.inc.php中有这样一行:

//$charset_config = array('self'=>'gbk','target'=>'utf8');//GBK配置

$charset_config = array('self'=>'utf8','target'=>'gbk');//UTF8配置

self => 表示本身系统编码,

target => 表示取得的编码。

如果你是使用GBK版本的话,那么使用$charset_config = array('self'=>'gbk','target'=>'utf8');//GBK配置,如果是UTF8的话就是用$charset_config = array('self'=>'gbk','target'=>'utf8');//GBK配置

修改保存,问题解决啦。

 

博客分类: 

浏览器缓存实现原理

浏览器缓存将文件保存在客户端,好的缓存策略可以减少对网络带宽的占用,可以提高访问速度,提高用户的体验,还可以减轻服务器的负担。因此我们有必要了解它的实现原理,用来提高网站的性能。
当一个客户端请求web服务器, 请求的内容可以从以下几个地方获取:服务器、浏览器缓存中或缓存服务器中。这取决于服务器端输出的页面信息。页面文件有三种缓存状态。
1.最新的:选择不缓存页面,每次请求时都从服务器获取最新的内容。
2.未过期的:在给定的时间内缓存,如果用户刷新或页面过期则去服务器请求,否则将读取本地的缓存,这样可以提高浏览速度。
3.过期的:也就是陈旧的页面,当请求这个页面时,必须进行重新获取。

页面的缓存状态是由http header决定的,一个浏览器请求信息,一个是服务器响应信息。主要包括Pragma: no-cache、Cache-Control、 Expires、 Last-Modified、If-Modified-Since。其中Pragma: no-cache由HTTP/1.0规定,Cache-Control由HTTP/1.1规定。

Cache-Control的主要参数

博客分类: 

后台开发人员应该时刻记住的几件事情

General:
 * Always keep quality sense in mind, and pay attention to details
 * Be aware of the importance of communication, teamwork, and responsibility
 * Face problems and handle it proactively, don't wait or even hide for any reason
 * Escalate any conflict or uncertain issue as early as possible, don't make decision by yourself
 * For any English writing, do check its spellings in OpenOffice before submission

博客分类: 

[转]风雨20年:我所积累的20条编程经验

风雨20年:我所积累的20条编程经验

     编者按:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你在本文中看到自己的身影。
  从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。

  我会持续更新这些经验,我可能还会有更多的感想,但就我这20年来看,我想下面这个列表中基本不需要增添额外的东西了。下面就是我至今最难忘的经验。

  1. 估算解决问题所需要的时间。不要怕,承认吧!我曾见过一些程序员为了解决一个特殊问题而坐在显示器前面8小时。为自己定一个时间限制吧,1小时、30分钟或甚至15分钟。如果在这期间你不能解决问题,那就去寻求帮助,或到网上找答案,而不是尝试去做“超级堆码员”。

博客分类: 

[转]HTTP头的Expires与Cache-control

1.概念

Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了Pragma: no-cache)

数据包中的格式:

Cache-Control: cache-directive

cache-directive可以为以下:

request时用到:

| "no-cache"
| "no-store"
| "max-age" "=" delta-seconds
| "max-stale" [ "=" delta-seconds ]
| "min-fresh" "=" delta-seconds
| "no-transform"
| "only-if-cached"
| "cache-extension"

response时用到:

博客分类: 

PHP中几种权限控制符(public, protected, private)

PHP中几种常用的权限控制符:public, protected, private.一直记不住他们的使用范围,记录下来,供参考。

1. public, protected, private.
public: 公有类型
在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型
在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中不能通过$obj->var 来调用 protected类型的方法或属性

private: 私有类型
该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法

博客分类: 

重温PHP手册

一、 处理文件及文件夹函数:
1.getcwd 获取当前目录
2.chdir 改变目录
3.chmod 改变文件模式
chmod('/var/www/tmp', 0755);
第二个参数最好是八进制数。十进制或许不对。
4.用glob代替opendir()
<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . " type " .filetype($filename). "\n";
}
?>
5.scandir()
array scandir ( string $directory [, int $sorting_order [, resource $context ]] )
返回数组,记录指定目录下的所有文件和目录。

博客分类: 

UTF-8和utf-8区别

昨天使用flash时候出现配置信息XML文件读取失败的情况。

经过一位同事的帮忙,最终确定是编码格式的问题。但是我是UTF-8以及Unix下编码。后来,我查看XML文件,发现头部的encoding="utf-8",我将其改为大写UTF-8,问题竟然奇迹般解决了。

上网搜的结果基本都认为windows不区分大小写,UTF-8和utf-8没有区别。但是写成UTF-8会更标准。国际标准是UTF-8而不是utf-8。

另外,顺便提下,mysql内只能用set name=utf8;这是由于mysql解析的原因,跟上面说的不是一回事情了。

博客分类: 

页面