再次更新blogbus2wordpress

在新一轮的爬行行动中,blogbus不幸中招,再次更新一下以往的blogbus2wordpress程序

很匆忙弄的,只是纯粹用正则表达式把blogbus备份中的tag转换了一下,所以这个程序的运行是完全是没有效率可言的,当然我在上网本中测试是可以把1MB左右,大概四五百篇文章的备份(这个备份只是我从几篇短小的文章扩展成四五百篇这样子)转换成功的,大家尽管试试吧。

这个版本可以完整保留blogbus中的分类和标签,但依旧没有保留留言。
Read More »

如何用PHP得到缩短链接的原始链接

树大招风,bit.ly和j.mp还是被河蟹了。当然撇开这个原因,我们有时也是有想得到某个缩短链接的原始链接的要求。

其实用PHP中的get_headers()函数就能轻松地得到原始链接。

<?php
$url = 'http://bit.ly/1vFqAp';

$headers = get_headers($url, 1);

echo '<pre>';

print_r($headers);

echo '</pre>';

get_headers第二个参数如果不为0时,将会以关联下标数组输出,这时我们用$headers[‘Location’]就可以直接得到该缩短链接的原始链接了。(当为0时,输出的结果是数字下标数组,这时我们就不能方便地调用原始链接)输出的结果如下:

Array
(
    [0] => HTTP/1.1 301 Moved
    [Server] => Array
        (
            [0] => nginx/0.7.42
            [1] => Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
        )

    [Date] => Array
        (
            [0] => Tue, 13 Oct 2009 07:38:38 GMT
            [1] => Tue, 13 Oct 2009 07:38:36 GMT
        )

    [Content-Type] => Array
        (
            [0] => text/html; charset=utf-8
            [1] => text/html; charset=UTF-8
        )

    [Connection] => Array
        (
            [0] => close
            [1] => close
        )

    [Location] => http://bingu.net/646/create-web-thumb-use-bluga-easythumb-api/
    [MIME-Version] => 1.0
    [Content-Length] => 324
    [1] => HTTP/1.1 200 OK
    [X-Powered-By] => PHP/5.2.9
    [X-Pingback] => http://bingu.net/xmlrpc.php
)

PHP的内置函数可做的事情很多,在谷歌中搜索“php删除字符串中的html”,可以得到一个别人编写的delete_htm()函数,而事实上PHP中的strip_tags()函数就能完成这个任务,完全不必自己另编一个函数。

网站截图bluga.net的easythumb API

网站截图bluga.net的easythumb API
bluga.net提供的在线网站截图可以说是现有此类网站中最好一个。她提供了多种分辨率的截图、zip打包下载全部分辨率的截图,还有就是她提供了两种方便的API,可以让注册用户通过API快捷地获取网站的截图。

bluga.net为注册用户免费提供了每个月100张截图的应用,当我们在制作类似CSS Vault这样的网站时,就可以不用人工去进行截图工作了。
Read More »

PHP编辑器:Dev-PHP2

前段时间,忽然对使用中的编辑器感到不爽。当时使用的是PSPad,这个不是专业的PHP编辑器,是的,她不是针对PHP而设计的,用起来还是觉得不够趁手。于是又开始了新一轮对编辑器的疯狂试用,最后还是选择了Dev-PHP2,一个针对PHP开发,免费开源的软件。

选择Dev-PHP2其实有点无奈,原因是我试用了几乎所有别人在网上推荐的PHP收费编辑器或大牌编辑器,如:PHPDesigner 2008、PHPEdit、PhpED、DSV PHP Editor、eclipse等等,占用内存大、启动缓慢、小毛病不少,真的是对不起付费的客户,还不如就用Dev-PHP2算了。就是这样,我选择了Dev-PHP2。

其实Dev-PHP2还是挺不错的,
1.支持多语言界面(locale.zip,下载解压到Dev-PHP2的安装目录下,可以实现中文界面。因为是我自己翻译的,错漏不少,欢迎指正。);
2.嵌入PHP手册。在选项中设置好你的中文手册后,可以直接在软件中查看;
3.支持UTF-8。可选择是否添加BOM;
4.支持Snippets。(这个功能似乎有点问题,我添加的好像不能保存。)
5.支持PHP解析和Debugger。要自己搭建PHP平台和xdebug和在选项中设置。
6.高亮显示PHP、HTML、CSS、Javascript等代码。(这个功能也不太完善)
7.代码提示。
8.启动快速。
9.程序小巧。安装文件才1+MB。

从上面你可以看到Dev-PHP2要有的功能基本都有了,但完善度却是不太足够。

不过懒得折腾了,先凑合用着吧。

Simple.1二栏版和WordPress搬家到Blogbus

wordpress主题Simple.1.2c

Simple.1.2c就是Simple.1的二栏版本,更简洁。

WordPress搬家到Blogbus程序是应jht的要求所写。现在大致上也已经完成了,这里把php程序发出,下载后按照README要求进行就可以了。
因为弄的比较匆忙,有问题,这里留言告知。THX
wp2bb.zip

用YUM升级CentOS系统中PHP和MySQL

用上umVPS后,很多时候在虚拟主机不用自己动手的事情都要自己搞定了,例如:PHP和MySQL的升级。因为不用自己动手,也动不了,所以冰古不太清楚虚拟主机的PHP和MySQL是不是会及时地更新。但用VPS,可以动手玩一下也保证安全,冰古是很乐意进行更新的。以下就是用YUM升级CentOS系统中PHP和MySQL的过程:

yum是CentOS系统自带的用于方便地添加/删除/更新RPM包的工具,它能自动解决包的倚赖性问题。
用yum更新PHP,只需用一条命令就可以搞定:

#yum update php

但问题来了,使用此命令后,系统告诉我,没有发现可更新的包。而当前的PHP版本只是5.2.1,PHP官方已经更新到5.2.6了。
经过一番询问,才知道原来CentOS系统的源里PHP仍旧是5.2.1,需要额外的源才能升级PHP。
根据外国网友的介绍,冰古添加了额外的源
登录SSH后依次运行下列命令:

#rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

#vi /etc/yum.repos.d/utterramblings.repo #文中这里是使用nano,但VPS不能启动nano,用vi代替也是可以的

在打开的文档中加入下面内容:

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

保存。
再次运行下面的命令就可以完成php的升级了

#yum update php

同理,运行下面命令,升级mysql

#yum update mysql

用PHP得到访问者的真实IP

在php中,通常我们用$_SERVER[‘REMOTE_ADDR’]得到访问者的ip。但当访问者使用了代理,它只能得到代理的ip。这时使用下面的函数就能得到访问者的真实ip:

function getRealIpAddr(){
  if (!empty($_SERVER['HTTP_CLIENT_IP'])){//check ip from share internet
    $ip=$_SERVER['HTTP_CLIENT_IP'];
  }
  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){//to check ip is pass from proxy
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  }else{
    $ip=$_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}

事实上这个函数也不是万能,众所周知,头信息是可以伪造的。

修正一种特殊的乱码问题

最近在使用sNews的过程中遇到一种特殊的乱码显示问题,表现为:用firefox浏览网页,该网页中的中文字符显示为乱码,但查看它的源代码却发现其中的中文字符是正常的,而且还有正确的meta指定其编码为’utf8’(<meta http-equiv="Content-Type" content="text/html;charset=utf8" />),如果在浏览器中选择编码’utf8’,网页显示正常,但刷新后,网页再次显示为乱码。

很显然,这个乱码显示问题是由于浏览器没有正确指定编码导致的。看了一下代码,发现<meta http-equiv="Content-Type" content="text/html;charset=utf8" />是由title()函数添加到模板中的,可能在此前,浏览器已为网页分配编码,但不能找到meta指定的编码,只能为该网页分配为GB2312,因此页面显示出现乱码,而源代码却是正常的。

解决的方法很简单,只需在程序开始后马上为其指定编码就行了,也即是在index.php的第二行加入<php header('content-type:text/html;charset=utf8'); ?>一句后保存即可。此时再刷新,网页已不会显示乱码了。