非常教程

Codeigniter 3参考手册

Trackback

Trackback Class

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

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

  • 使用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格式的错误消息或空字符串。

Trackback相关

Codeigniter 3

CodeIgniter 是一个PHP MVC框架,特点是超轻量级、有数据加密、有灵活URI路由等。对于 PHP 程序员来说,它小巧但功能强大。

主页 https://codeigniter.com/
源码 https://github.com/bcit-ci/CodeIgniter
版本 3
发布版本 3.1.5