trackback学习
时间:2006-02-09 来源:放弃思考
最近要做一些web2.0方面的技术储备。首先要做一个trackback演示,以前很少关注blog方面的技术,不知trackback,tag,RSS等属于web2.0的范畴(其实对于web2.0的定义,我现在还搞不太明白,原来还以为是技术上的革新)。
花了一天找资料学习,trackback这个概念有点玄乎,看了数小时才搞透彻,按我自己的理解trackback就是:跨站评论,当然trackback还可以用在其他很多方面,如论坛,各种网站联系等等,关键是要有相应的标准。同时,评论授权也有必要考虑下。
动手写演示代码--跨站留言本,找个blog拷代码偷懒下,一会就交差了,呵呵。贴出参考的cblog2中关于trackback的关键代码:
/*********************************************************
发送trackback程序
参数,主机地址,标题,这篇文章的地址,内容,站点名称
*********************************************************/
function sendTrackback($host,$title,$url,$excerpt,$blog_name) {
$buf="";
$host = str_replace('http://', '', $host);
$path = explode('/', $host);
$host = $path[0];
unset($path[0]);
$path = '/' . implode('/', $path);
$excerpt = cn_substr($excerpt,252);
$fp = @fsockopen($host, 80, $errno, $errstr, 30);
if(!$fp) {
Return flase;
}
$blog_name=str_replace("'", "''", $blog_name);;
$query = 'title=' . rawurlencode($title);
$query .= '&url=' . rawurlencode($url);
$query .= '&excerpt=' . rawurlencode($excerpt);
$query .= '&blog_name=' . rawurlencode($blog_name);
$out = 'POST ' . $path . ' HTTP/1.1' . "\r\n";
$out .= 'Host: ' . $host . "\r\n";
$out .= 'Connection: close' . "\r\n";
$out .= 'Content-Length: ' . strlen($query) . "\r\n";
$out .= 'Content-Type: application/x-www-form-urlencoded; charset=iso-8859-1' . "\r\n\r\n";
$out .= $query . "\r\n";
fwrite($fp, $out);
while (!feof($fp))
$buf .= fgets($fp,128);
fclose($fp);
$arr=explode("",$buf);
$return_num=intval(substr($arr[1], 1, 0));
if($return_num==0){
return true;
}else{
$arr2=explode("message",$buf);
$return_msg=str_replace(">", "", $arr2[1]);
$return_msg=str_replace("
感受:trackback看似玄乎,其实挺简单。现在想来tag倒还复杂一些,虽然本质上是分类而已,但如果是像flickr这样的大站点,如何实现tag功能是需要好好设计的。
思考tag中...,有在大型站点实现tag功能的朋友请提供点资料,共同探讨下^_^
花了一天找资料学习,trackback这个概念有点玄乎,看了数小时才搞透彻,按我自己的理解trackback就是:跨站评论,当然trackback还可以用在其他很多方面,如论坛,各种网站联系等等,关键是要有相应的标准。同时,评论授权也有必要考虑下。
动手写演示代码--跨站留言本,找个blog拷代码偷懒下,一会就交差了,呵呵。贴出参考的cblog2中关于trackback的关键代码:
/*********************************************************
发送trackback程序
参数,主机地址,标题,这篇文章的地址,内容,站点名称
*********************************************************/
function sendTrackback($host,$title,$url,$excerpt,$blog_name) {
$buf="";
$host = str_replace('http://', '', $host);
$path = explode('/', $host);
$host = $path[0];
unset($path[0]);
$path = '/' . implode('/', $path);
$excerpt = cn_substr($excerpt,252);
$fp = @fsockopen($host, 80, $errno, $errstr, 30);
if(!$fp) {
Return flase;
}
$blog_name=str_replace("'", "''", $blog_name);;
$query = 'title=' . rawurlencode($title);
$query .= '&url=' . rawurlencode($url);
$query .= '&excerpt=' . rawurlencode($excerpt);
$query .= '&blog_name=' . rawurlencode($blog_name);
$out = 'POST ' . $path . ' HTTP/1.1' . "\r\n";
$out .= 'Host: ' . $host . "\r\n";
$out .= 'Connection: close' . "\r\n";
$out .= 'Content-Length: ' . strlen($query) . "\r\n";
$out .= 'Content-Type: application/x-www-form-urlencoded; charset=iso-8859-1' . "\r\n\r\n";
$out .= $query . "\r\n";
fwrite($fp, $out);
while (!feof($fp))
$buf .= fgets($fp,128);
fclose($fp);
$arr=explode("",$buf);
$return_num=intval(substr($arr[1], 1, 0));
if($return_num==0){
return true;
}else{
$arr2=explode("message",$buf);
$return_msg=str_replace(">", "", $arr2[1]);
$return_msg=str_replace("
感受:trackback看似玄乎,其实挺简单。现在想来tag倒还复杂一些,虽然本质上是分类而已,但如果是像flickr这样的大站点,如何实现tag功能是需要好好设计的。
思考tag中...,有在大型站点实现tag功能的朋友请提供点资料,共同探讨下^_^
相关阅读 更多 +