?
This document uses PHP Chinese website manual Release
Trackback類提供了使您能夠發(fā)送和接收Trackback數(shù)據(jù)的功能。
使用Trackback類
筆記:
初始化類
發(fā)送引用
收到引用
您的Ping網(wǎng)址
創(chuàng)建一個(gè)引用表
處理引用
類參考
像CodeIgniter中的大多數(shù)其他類一樣,Trackback類在您的控制器中使用以下$this->load->library()
方法進(jìn)行初始化:
$this->load->library('trackback');
加載后,Trackback庫(kù)對(duì)象將可用:
$this->trackback
可以使用類似于此示例的代碼從任何控制器功能發(fā)送引導(dǎo)記錄:
$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!';}
數(shù)組數(shù)據(jù)的描述:
ping_url - 您要將Trackback發(fā)送到的網(wǎng)站的URL。您可以通過(guò)用逗號(hào)分隔每個(gè)網(wǎng)址,將Trackbacks發(fā)送到多個(gè)網(wǎng)址。
網(wǎng)址 - 您的網(wǎng)站的URL,可以看到網(wǎng)絡(luò)日志條目。
標(biāo)題 - 您的博客條目的標(biāo)題。
摘錄 - 您的博客條目的內(nèi)容。
blog_name - 您的博客的名稱。
字符集 - 編碼您的博客的字符被寫(xiě)入。如果省略,將使用UTF-8。
注意
Trackback類將自動(dòng)發(fā)送您輸入的前500個(gè)字符。它也將剝離所有的HTML。
Trackback發(fā)送方法在成功或失敗時(shí)返回TRUE / FALSE(布爾值)。如果失敗,可以使用以下命令檢索錯(cuò)誤消息:
$this->trackback->display_errors();
您必須先創(chuàng)建一個(gè)博客,然后才能收到引用。如果你還沒(méi)有博客,那么繼續(xù)下去沒(méi)有意義。
接收引用要比發(fā)送引導(dǎo)復(fù)雜一點(diǎn),因?yàn)槟枰粋€(gè)數(shù)據(jù)庫(kù)表來(lái)存儲(chǔ)它們,您需要驗(yàn)證傳入的引用數(shù)據(jù)。我們鼓勵(lì)您實(shí)施徹底的驗(yàn)證流程,以防止垃圾郵件和重復(fù)數(shù)據(jù)。您也可能希望限制您在特定時(shí)間段內(nèi)允許從特定IP訪問(wèn)的引用次數(shù),以進(jìn)一步減少垃圾郵件。接收Trackback的過(guò)程非常簡(jiǎn)單; 驗(yàn)證是大部分工作所需要的。
為了接受引用通告,您必須在每個(gè)博客條目旁邊顯示引用通告網(wǎng)址。這將是人們用來(lái)向您發(fā)送引用的網(wǎng)址(我們將其稱為您的“Ping網(wǎng)址”)。
您的Ping URL必須指向您的Trackback接收代碼所在的控制器函數(shù),并且該URL必須包含每個(gè)特定條目的ID號(hào),以便在收到Trackback時(shí)您可以將其與特定條目相關(guān)聯(lián)。
例如,如果您的控制器類稱為Trackback,并且接收函數(shù)稱為receive,則您的Ping URL將如下所示:
http://example.com/index.php/trackback/receive/entry_id
其中entry_id代表每個(gè)條目的個(gè)人ID號(hào)碼。
在您可以收到引用通告之前,您必須創(chuàng)建一個(gè)表格來(lái)存儲(chǔ)它們。這是一張表格的基本原型:
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規(guī)范只需要在Trackback(url,title,excerpt,blog_name)中發(fā)送四條信息,但為了使數(shù)據(jù)更有用,我們?cè)谏鲜霰砟J街刑砑恿烁嘧侄危ㄈ掌?,IP地址等)。
以下是一個(gè)示例,顯示您將如何接收和處理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號(hào)碼預(yù)計(jì)在您的網(wǎng)址的第三部分。這是基于我們之前給出的URI示例:
http://example.com/index.php/trackback/receive/entry_id
請(qǐng)注意,entry_id位于第三個(gè)URI段中,您可以使用它檢索:
$this->uri->segment(3);
在上面的Trackback接收代碼中,如果第三個(gè)分段丟失,我們將發(fā)出錯(cuò)誤。沒(méi)有有效的條目ID,沒(méi)有理由繼續(xù)。
$ this-> trackback-> receive()函數(shù)只是一個(gè)驗(yàn)證函數(shù),用于查看傳入數(shù)據(jù)并確保它包含所需的四個(gè)數(shù)據(jù)段(url,title,excerpt,blog_name)。它在成功時(shí)返回TRUE,在失敗時(shí)返回FALSE。如果失敗,您將發(fā)出錯(cuò)誤消息。
傳入的引用數(shù)據(jù)可以使用這個(gè)函數(shù)獲?。?/p>
$this->trackback->data('item')
凡項(xiàng)目代表這四個(gè)信息之一:網(wǎng)址,標(biāo)題,摘錄或blog_name
如果引導(dǎo)數(shù)據(jù)成功接收,您將使用以下命令發(fā)出成功消息:
$this->trackback->send_success();
注意
以上代碼不包含數(shù)據(jù)驗(yàn)證,建議您添加。
class CI_Trackback$data = array('url' => '', 'title' => '', 'excerpt' => '', 'blog_name' => '', 'charset' => '')
引導(dǎo)數(shù)據(jù)陣列。
$convert_ascii = TRUE
是否將高級(jí)ASCII和MS Word字符轉(zhuǎn)換為HTML實(shí)體。
send($tb_data)
參數(shù): | $ tb_data(數(shù)組) - 引用數(shù)據(jù) |
---|---|
返回: | 成功為TRUE,失敗為FALSE |
返回類型: | 布爾 |
$ tb_data(數(shù)組) - 引用數(shù)據(jù)
Returns: TRUE on success, FALSE on failure
Return type: bool
Send trackback.
receive()
返回: | 成功為TRUE,失敗為FALSE |
---|---|
返回類型: | 布爾 |
send_error([$message = 'Incomplete information'])
參數(shù): | $ message(string) - 錯(cuò)誤消息 |
---|---|
返回類型: | void |
$ message(string) - 錯(cuò)誤消息
Return type: void
通過(guò)錯(cuò)誤消息響應(yīng)引用請(qǐng)求。
注意
該方法將終止腳本執(zhí)行。
send_success()
Return type: | void |
---|
data($item)
參數(shù): | $ item(string) - 數(shù)據(jù)鍵 |
---|---|
返回: | 數(shù)據(jù)值或空字符串,如果沒(méi)有找到 |
返回類型: | 串 |
$ item(string) - 數(shù)據(jù)鍵
返回:如果未找到數(shù)據(jù)值或空字符串
返回類型:字符串
返回響應(yīng)數(shù)據(jù)數(shù)組中的單個(gè)項(xiàng)目。
process($url, $data)
參數(shù): | $ url(字符串) - 目標(biāo)url $ data(字符串) - 原始POST數(shù)據(jù) |
---|---|
返回: | 成功為TRUE,失敗為FALSE |
返回類型: | 布爾 |
$ url(字符串) - 目標(biāo)網(wǎng)址
$ data(string) - 原始POST數(shù)據(jù)
Returns: TRUE on success, FALSE on failure
Return type: bool
打開(kāi)套接字連接并將數(shù)據(jù)傳遞到服務(wù)器,成功時(shí)返回TRUE,失敗時(shí)返回FALSE。
extract_urls($urls)
參數(shù): | $ urls(string) - 逗號(hào)分隔的URL列表 |
---|---|
返回: | 一組網(wǎng)址 |
返回類型: | 排列 |
$ urls(string) - 逗號(hào)分隔的URL列表
Returns: Array of URLs
Return type: array
這種方法可以發(fā)送多個(gè)引用。它需要一串URL(用逗號(hào)或空格分隔)并將每個(gè)URL放入一個(gè)數(shù)組中。
validate_url(&$url)
參數(shù): | $ url(字符串) - 引用網(wǎng)址 |
---|---|
返回類型: | 空虛 |
$ url(字符串) - 引用網(wǎng)址
Return type: void
Simply adds the _http://_ prefix it it’s not already present in the URL.
get_id($url)
參數(shù): | $ url(字符串) - 引用網(wǎng)址 |
---|---|
返回: | URL ID或FALSE失敗 |
返回類型: | 串 |
$ url(字符串) - 引用網(wǎng)址
Returns: URL ID or FALSE on failure
Return type: string
查找并返回失敗時(shí)的引用URL的ID或FALSE。
convert_xml($str)
參數(shù): | $ str(string) - 輸入字符串 |
---|---|
返回: | 轉(zhuǎn)換后的字符串 |
返回類型: | 串 |
$ str(string) - 輸入字符串
Returns: Converted string
Return type: string
將保留的XML字符轉(zhuǎn)換為實(shí)體。
limit_characters($str[, $n = 500[, $end_char = '…']])
參數(shù): | $ str(string) - 輸入字符串$ n(int) - 最大字符數(shù)$ end_char(字符串) - 放在字符串末尾的字符 |
---|---|
返回: | 縮短的字符串 |
返回類型: | 串 |
$ str(string) - 輸入字符串
$ n(int) - 最大字符數(shù)
$ end_char(字符串) - 放在字符串末尾的字符
Returns: Shortened string
Return type: string
根據(jù)字符數(shù)量限制字符串。將保留完整的單詞。
convert_ascii($str)
參數(shù): | $ str(string) - 輸入字符串 |
---|---|
返回: | 轉(zhuǎn)換后的字符串 |
返回類型: | 串 |
$ str(string) - 輸入字符串
Returns: Converted string
Return type: string
將高級(jí)ASCII文本和MS Word特殊字符轉(zhuǎn)換為HTML實(shí)體。
set_error($msg)
參數(shù): | $ msg(字符串) - 錯(cuò)誤消息 |
---|---|
返回類型: | 空虛 |
$ msg(字符串) - 錯(cuò)誤消息
Return type: void
設(shè)置日志錯(cuò)誤消息。
display_errors([$open = '<p>'[, $close = '</p>']])
參數(shù): | $ open(string) - 打開(kāi)標(biāo)簽$ close(string) - 關(guān)閉標(biāo)簽 |
---|---|
返回: | HTML格式的錯(cuò)誤消息 |
返回類型: | 串 |
$ open(string) - 打開(kāi)標(biāo)簽
$ close(string) - 關(guān)閉標(biāo)簽
返回:HTML格式的錯(cuò)誤消息
Return type: string
如果沒(méi)有錯(cuò)誤,則返回HTML格式的錯(cuò)誤消息或空字符串。