在线文档教程

Trackback Class

Trackback Class

Trackback类提供了使您能够发送和接收Trackback数据的功能。

如果你不熟悉Trackbacks,你会在这里找到更多信息。

  • 使用Trackback类

使用Trackback类

初始化类

像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发送到多个网址。

注意

Trackback类将自动发送您输入的前500个字符。它也将剥离所有的HTML。

Trackback发送方法在成功或失败时返回TRUE / FALSE(布尔值)。如果失败,可以使用以下命令检索错误消息:

$this->trackback->display_errors(

收到引用

您必须先创建一个博客,然后才能收到引用。如果你还没有博客,那么继续下去没有意义。

接收引用要比发送引导复杂一点,因为您需要一个数据库表来存储它们,您需要验证传入的引用数据。我们鼓励您实施彻底的验证流程,以防止垃圾邮件和重复数据。您也可能希望限制您在特定时间段内允许从特定IP访问的引用次数,以进一步减少垃圾邮件。接收Trackback的过程非常简单; 验证是大部分工作所需要的。

您的Ping网址

为了接受引用通告,您必须在每个博客条目旁边显示引用通告网址。这将是人们用来向您发送引用的网址(我们将其称为您的“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

  • $ messagestring) - 错误消息

Return type: void

通过错误消息响应引用请求。

注意

该方法将终止脚本执行。

send_success()

Return type:void

data($item)

参数:$ item(string) - 数据键
返回:数据值或空字符串,如果没有找到
返回类型:

  • $ itemstring) - 数据键

返回:如果未找到数据值或空字符串

返回类型:字符串

返回响应数据数组中的单个项目。

process($url, $data)

参数:$ url(字符串) - 目标url $ data(字符串) - 原始POST数据
返回:成功为TRUE,失败为FALSE
返回类型:布尔

  • $ url字符串) - 目标网址

Returns: TRUE on success, FALSE on failure

Return type: bool

打开套接字连接并将数据传递到服务器,成功时返回TRUE,失败时返回FALSE。

extract_urls($urls)

参数:$ urls(string) - 逗号分隔的URL列表
返回:一组网址
返回类型:排列

  • $ urlsstring) - 逗号分隔的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) - 输入字符串
返回:转换后的字符串
返回类型:

  • $ strstring) - 输入字符串

Returns: Converted string

Return type: string

将保留的XML字符转换为实体。

limit_characters($str[, $n = 500[, $end_char = '…']])

参数:$ str(string) - 输入字符串$ n(int) - 最大字符数$ end_char(字符串) - 放在字符串末尾的字符
返回:缩短的字符串
返回类型:

  • $ strstring) - 输入字符串

Returns: Shortened string

Return type: string

根据字符数量限制字符串。将保留完整的单词。

convert_ascii($str)

参数:$ str(string) - 输入字符串
返回:转换后的字符串
返回类型:

  • $ strstring) - 输入字符串

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格式的错误消息
返回类型:

  • $ openstring) - 打开标签

返回:HTML格式的错误消息

Return type: string

如果没有错误,则返回HTML格式的错误消息或空字符串。