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