2012-07-17 77 views
1

我正在嘗試爲我們的網站創建一個pingback腳本,但是1 & 1沒有我們需要安裝的XMLRPC擴展名。沒有擴展名的PHP XMLRPC服務器

是否有其他方法可以創建pingback/trackback腳本而不需要此擴展 - 並且有任何演示?

回答

2

phpxmlrpc

一個老PHP實現,它似乎被拋棄,但你可以看到如何使用它來發送包括引用或在此blogpost接收它們。

Zend

有一個純PHP實現XML-RPC clientserver在Zend框架,你可以用它來打電話或實現一個可以通告的服務,它的有據可查的。如果您不想僅將完整框架用作組件庫,那麼只需下載框架,從其中提取lib/Zend到目錄幷包含組件的頂級文件。 (爲方便起見,您可能需要設置自動加載)

pingback服務描述爲here

如果你有設置,你可以去這個blogpost爲客戶機/服務器代碼的指針,我給你的Zend類(後使用xmlrpc擴展)

發送包括引用一些例子:

require_once 'Zend/XmlRpc/Client.php'; // path to the framework files 
try { 
    $client = new Zend_XmlRpc_Client('<pingback service url>'); 
    $client->call('pingback.ping', array('<source uri>', '<target uri>')); 
} catch (Exception $e) { 
    // error handling 
} 

服務網址將位於博客文章的http標頭中,或位於pingback documentation中的元標記中。

pingback的服務骨架

class PingBackService { 
    public function ping($source, $target) { 
     $source_url = $source[0]; 
     $target_url = $target[0]; 

     // validate parameters here, see http://www.quietearth.us/articles/2006/10/30/Coding-your-own-blog-Pingback-in-php for pointers 

     return 'Pingback registered. May the force be with you'; 
    } 
} 
require_once 'Zend/XmlRpc/Server.php'; 
try { 
    $server = new Zend_XmlRpc_Server(); 
    $server->setClass('PingBackService', 'pingback'); 
    echo $server->handle(); 
} catch (Exception $e) { 
    // handle errors 
} 
+0

謝謝,我不知道我可以從Zend中抽出一點點。甜! – James 2012-07-18 09:10:42

0

PEAR具有在實現用戶級PHP的XML-RPC客戶端和服務器,而無需任何特殊的擴展XML_RPC2 package