Archive for the 'web编程' Category

PHP cURL代码举例

上次贴出来的twitter同步到人人的代码,很多人留言说看不懂。其实这个代码从总体上说还是比较简单的,可能大家对curl相关函数不太了解导致抱怨说看不懂。这里写篇简单的日志介绍一下curl的使用。

注意:如果你需要深入学习,请在线查看php.net的文档,本文仅仅是对不了解PHP curl函数族的用户的入门简介。代码没有经过严格检查,如有错误请留言指出。同样,全文及以下代码以CC by-nc-sa释出,转载请注明出处。
Continue reading ‘PHP cURL代码举例’

使用twip架设Twitter API proxy

twip是本人在google code上开设的一个开源项目,目标是建立一个基于PHP的twitter API proxy。

什么是twitter API proxy?
简单地说,就是把客户端发过来的POST和GET请求转发到原始API地址,并将返回的http header和内容返回给客户端,实现了原始twitter API的所有功能。而对客户端来说,除了提供一个可供配置的API地址选项,不需要做任何代码上的更改

现有的Twitter API proxy程序主要有两个:基于Python的birdnest基于PHP的tweetr。birdnest不用多说,功能很完备,可以在Google App Engine上架设,方便了没有网页空间的用户。tweetr则提供了基本的功能,但是又不完备(不返回header信息,没有将客户端类型的POST值传至服务器)。

本来twip项目准备从tweetr项目fork,专门维护一个PHP版twitter api proxy,但是发现tweetr的面向对象风格的代码实在读着不爽,加上API proxy本身没有太多技术含量,所以决定还是自己实现一个。

目前为止实现的还算不错,已经非常可用了。
如果你想自己架设一个,checkout代码后,修改config.php中的选项,注意$webroot变量的修改,然后上传到国外的虚拟主机空间即可。

附TwitterFox的API地址修改方法:
系统中查找nsTwitterFox.js文件,修改其中的TWITTER_API_URL为你架设的API proxy地址

php识别Google的爬虫

给byrbt稍微加点SEO,遇到一个问题是让google可以访问一些原本必须登录之后才能访问的页面。

google了一个晚上无果……这里有一个帖子从来没有人回答过……其他地方找到的方法就是用UA来识别google bot

参考了谷歌中文网站管理员博客上的一篇日志这个帖子写了一个函数判断是否为googlebot

懒得排版了……

function isgooglebot(){
$ua=strtolower($_SERVER['HTTP_USER_AGENT']);
$ip=$_SERVER['REMOTE_ADDR'];
if(strpos($ua,"googlebot")!==false){
$hostname=gethostbyaddr($ip);
if(strpos($hostname,"googlebot.com") !==false ){
$ip_reversed=gethostbyname($hostname);
if($ip==$ip_reversed){
return true;
}else return false;
}else return false;
}else return false;
}

BTW:我依稀记得google提供了一个网页,提交用户名密码以及对应的字段名,google可以自己post用户名密码来完成登录再抓取需要登录才能看到的网页……谁知道这个页面在哪……