©
本文档使用
php.cn手册 发布
Trackback类提供了使您能够发送和接收Trackback数据的功能。
使用Trackback类
笔记:
初始化类
发送引用
收到引用
您的Ping网址
创建一个引用表
处理引用
类参考
像CodeIgniter中的大多数其他类一样,Trackback类在您的控制器中使用以下$this->load->library()
方法进行初始化:
$this->load->library('trackback');
加载后,Trackback库对象将可用:
$this->trackback
可以使用类似于此示例的代码从任何控制器功能发送引导记录:
$this->load->library('trackback');$tb_data = array( 'ping_url' => 'http://example.com/trackback/456', 'url' => 'http://www.my-example.com/blog/entry/123', 'title' => 'The Title of My Entry', 'excerpt' => 'The entry content.', 'blog_name' => 'My Blog Name', 'charset' => 'utf-8');if ( ! $this->trackback->send($tb_data)){ echo $this->trackback->display_errors();}else{ echo 'Trackback was sent!';}
数组数据的描述:
ping_url - 您要将Trackback发送到的网站的URL。您可以通过用逗号分隔每个网址,将Trackbacks发送到多个网址。
网址 - 您的网站的URL,可以看到网络日志条目。
标题 - 您的博客条目的标题。
摘录 - 您的博客条目的内容。
blog_name - 您的博客的名称。
字符集 - 编码您的博客的字符被写入。如果省略,将使用UTF-8。
注意
Trackback类将自动发送您输入的前500个字符。它也将剥离所有的HTML。
Trackback发送方法在成功或失败时返回TRUE / FALSE(布尔值)。如果失败,可以使用以下命令检索错误消息:
$this->trackback->display_errors();
您必须先创建一个博客,然后才能收到引用。如果你还没有博客,那么继续下去没有意义。
接收引用要比发送引导复杂一点,因为您需要一个数据库表来存储它们,您需要验证传入的引用数据。我们鼓励您实施彻底的验证流程,以防止垃圾邮件和重复数据。您也可能希望限制您在特定时间段内允许从特定IP访问的引用次数,以进一步减少垃圾邮件。接收Trackback的过程非常简单; 验证是大部分工作所需要的。
为了接受引用通告,您必须在每个博客条目旁边显示引用通告网址。这将是人们用来向您发送引用的网址(我们将其称为您的“Ping网址”)。
您的Ping URL必须指向您的Trackback接收代码所在的控制器函数,并且该URL必须包含每个特定条目的ID号,以便在收到Trackback时您可以将其与特定条目相关联。
例如,如果您的控制器类称为Trackback,并且接收函数称为receive,则您的Ping URL将如下所示:
http://example.com/index.php/trackback/receive/entry_id
其中entry_id代表每个条目的个人ID号码。
在您可以收到引用通告之前,您必须创建一个表格来存储它们。这是一张表格的基本原型:
CREATE TABLE trackbacks ( tb_id int(10) unsigned NOT NULL auto_increment, entry_id int(10) unsigned NOT NULL default 0, url varchar(200) NOT NULL, title varchar(100) NOT NULL, excerpt text NOT NULL, blog_name varchar(100) NOT NULL, tb_date int(10) NOT NULL, ip_address varchar(45) NOT NULL, PRIMARY KEY `tb_id` (`tb_id`), KEY `entry_id` (`entry_id`));
Trackback规范只需要在Trackback(url,title,excerpt,blog_name)中发送四条信息,但为了使数据更有用,我们在上述表模式中添加了更多字段(日期,IP地址等)。
以下是一个示例,显示您将如何接收和处理Trackback。以下代码旨在用于希望收到引用的控制器功能中。
$this->load->library('trackback');$this->load->database();if ($this->uri->segment(3) == FALSE){ $this->trackback->send_error('Unable to determine the entry ID');}if ( ! $this->trackback->receive()){ $this->trackback->send_error('The Trackback did not contain valid data');}$data = array( 'tb_id' => '', 'entry_id' => $this->uri->segment(3), 'url' => $this->trackback->data('url'), 'title' => $this->trackback->data('title'), 'excerpt' => $this->trackback->data('excerpt'), 'blog_name' => $this->trackback->data('blog_name'), 'tb_date' => time(), 'ip_address' => $this->input->ip_address());$sql = $this->db->insert_string('trackbacks', $data);$this->db->query($sql);$this->trackback->send_success();
条目ID号码预计在您的网址的第三部分。这是基于我们之前给出的URI示例:
http://example.com/index.php/trackback/receive/entry_id
请注意,entry_id位于第三个URI段中,您可以使用它检索:
$this->uri->segment(3);
在上面的Trackback接收代码中,如果第三个分段丢失,我们将发出错误。没有有效的条目ID,没有理由继续。
$ this-> trackback-> receive()函数只是一个验证函数,用于查看传入数据并确保它包含所需的四个数据段(url,title,excerpt,blog_name)。它在成功时返回TRUE,在失败时返回FALSE。如果失败,您将发出错误消息。
传入的引用数据可以使用这个函数获取:
$this->trackback->data('item')
凡项目代表这四个信息之一:网址,标题,摘录或blog_name
如果引导数据成功接收,您将使用以下命令发出成功消息:
$this->trackback->send_success();
注意
以上代码不包含数据验证,建议您添加。
class CI_Trackback$data = array('url' => '', 'title' => '', 'excerpt' => '', 'blog_name' => '', 'charset' => '')
引导数据阵列。
$convert_ascii = TRUE
是否将高级ASCII和MS Word字符转换为HTML实体。
send($tb_data)
参数: | $ tb_data(数组) - 引用数据 |
---|---|
返回: | 成功为TRUE,失败为FALSE |
返回类型: | 布尔 |
$ tb_data(数组) - 引用数据
Returns: TRUE on success, FALSE on failure
Return type: bool
Send trackback.
receive()
返回: | 成功为TRUE,失败为FALSE |
---|---|
返回类型: | 布尔 |
send_error([$message = 'Incomplete information'])
参数: | $ message(string) - 错误消息 |
---|---|
返回类型: | void |
$ message(string) - 错误消息
Return type: void
通过错误消息响应引用请求。
注意
该方法将终止脚本执行。
send_success()
Return type: | void |
---|
data($item)
参数: | $ item(string) - 数据键 |
---|---|
返回: | 数据值或空字符串,如果没有找到 |
返回类型: | 串 |
$ item(string) - 数据键
返回:如果未找到数据值或空字符串
返回类型:字符串
返回响应数据数组中的单个项目。
process($url, $data)
参数: | $ url(字符串) - 目标url $ data(字符串) - 原始POST数据 |
---|---|
返回: | 成功为TRUE,失败为FALSE |
返回类型: | 布尔 |
$ url(字符串) - 目标网址
$ data(string) - 原始POST数据
Returns: TRUE on success, FALSE on failure
Return type: bool
打开套接字连接并将数据传递到服务器,成功时返回TRUE,失败时返回FALSE。
extract_urls($urls)
参数: | $ urls(string) - 逗号分隔的URL列表 |
---|---|
返回: | 一组网址 |
返回类型: | 排列 |
$ urls(string) - 逗号分隔的URL列表
Returns: Array of URLs
Return type: array
这种方法可以发送多个引用。它需要一串URL(用逗号或空格分隔)并将每个URL放入一个数组中。
validate_url(&$url)
参数: | $ url(字符串) - 引用网址 |
---|---|
返回类型: | 空虚 |
$ url(字符串) - 引用网址
Return type: void
Simply adds the _http://_ prefix it it’s not already present in the URL.
get_id($url)
参数: | $ url(字符串) - 引用网址 |
---|---|
返回: | URL ID或FALSE失败 |
返回类型: | 串 |
$ url(字符串) - 引用网址
Returns: URL ID or FALSE on failure
Return type: string
查找并返回失败时的引用URL的ID或FALSE。
convert_xml($str)
参数: | $ str(string) - 输入字符串 |
---|---|
返回: | 转换后的字符串 |
返回类型: | 串 |
$ str(string) - 输入字符串
Returns: Converted string
Return type: string
将保留的XML字符转换为实体。
limit_characters($str[, $n = 500[, $end_char = '…']])
参数: | $ str(string) - 输入字符串$ n(int) - 最大字符数$ end_char(字符串) - 放在字符串末尾的字符 |
---|---|
返回: | 缩短的字符串 |
返回类型: | 串 |
$ str(string) - 输入字符串
$ n(int) - 最大字符数
$ end_char(字符串) - 放在字符串末尾的字符
Returns: Shortened string
Return type: string
根据字符数量限制字符串。将保留完整的单词。
convert_ascii($str)
参数: | $ str(string) - 输入字符串 |
---|---|
返回: | 转换后的字符串 |
返回类型: | 串 |
$ str(string) - 输入字符串
Returns: Converted string
Return type: string
将高级ASCII文本和MS Word特殊字符转换为HTML实体。
set_error($msg)
参数: | $ msg(字符串) - 错误消息 |
---|---|
返回类型: | 空虚 |
$ msg(字符串) - 错误消息
Return type: void
设置日志错误消息。
display_errors([$open = '<p>'[, $close = '</p>']])
参数: | $ open(string) - 打开标签$ close(string) - 关闭标签 |
---|---|
返回: | HTML格式的错误消息 |
返回类型: | 串 |
$ open(string) - 打开标签
$ close(string) - 关闭标签
返回:HTML格式的错误消息
Return type: string
如果没有错误,则返回HTML格式的错误消息或空字符串。