【问题标题】:how to retrieve number of trackbacks for a URL如何检索 URL 的引用数量
【发布时间】:2011-04-06 23:43:28
【问题描述】:
据我所知,trackback 是公认的自定义 URL 的标准 ping,对吧?
那么,根据this,我怎样才能检索http://example.com/article/22/name-article 的多少引用?以及那些“引用”的网址?
我以前从未与那些人合作过,如果可能的话,我想知道如何使用 PHP,或者,如果可能,使用 js,
任何提示或线索都会受到欢迎
【问题讨论】:
标签:
php
javascript
trackback
【解决方案1】:
您必须在所有页面中定义一个入口点,该入口点将接收所有引用请求。 Trackback 规范是这样做的:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://www.foo.com/archive.html#foo"
dc:identifier="http://www.foo.com/archive.html#foo"
dc:title="Foo Bar"
trackback:ping="http://www.foo.com/tb.cgi/5" />
</rdf:RDF>
<rdf:RDF></rdf:RDF> 是您声明此页面使用引用的位置,<rdf:Description /> 中的参数特定于您的页面。 dc:identifier 是您的确切页面 URL,trackback:ping 是 Trackback 入口点。
在作为客户端语言的 JS 中,没有办法存储每个页面的引用计数,因此 trackback:ping 应该是一个 PHP 脚本,用于检查请求查询中的 title 并将其存储在某处(数据库、文件、日志……)
我做了这个非常简化的 Trackback 入口点:
<?php
$theUrl = $_GET['url'];
if (!$theUrl) {
printError(NO_URL);
die();
}
$theUrl = Sanitize::clean($theUrl, SQL) // Your anti-SQL injection method
$theId = getIdFromUrl($theUrl);
countIntoDataBase($theId);
?>
最后但并非最不重要的一点是,重要的是要记住 Trackback 协议很容易出现垃圾邮件,因为这个答案指出:Trackbacks in PHP