目录 搜索
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
文字

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

  • 使用Trackback类

    • 笔记:

    • 初始化类

    • 发送引用

    • 收到引用

    • 您的Ping网址

    • 创建一个引用表

    • 处理引用

  • 类参考

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

  • 网址 - 您的网站的URL,可以看到网络日志条目。

  • 标题 - 您的博客条目的标题。

  • 摘录 - 您的博客条目的内容。

  • blog_name - 您的博客的名称。

  • 字符集 - 编码您的博客的字符被写入。如果省略,将使用UTF-8。

注意

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字符串) - 目标网址

  • $ datastring) - 原始POST数据

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) - 输入字符串

  • $ nint) - 最大字符数

  • $ end_char字符串) - 放在字符串末尾的字符

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) - 打开标签

  • $ closestring) - 关闭标签

返回:HTML格式的错误消息
Return type:  string
如果没有错误,则返回HTML格式的错误消息或空字符串。
上一篇: 下一篇: