我正在嘗試爲我們的網站創建一個pingback腳本,但是1 & 1沒有我們需要安裝的XMLRPC擴展名。沒有擴展名的PHP XMLRPC服務器
是否有其他方法可以創建pingback/trackback腳本而不需要此擴展 - 並且有任何演示?
我正在嘗試爲我們的網站創建一個pingback腳本,但是1 & 1沒有我們需要安裝的XMLRPC擴展名。沒有擴展名的PHP XMLRPC服務器
是否有其他方法可以創建pingback/trackback腳本而不需要此擴展 - 並且有任何演示?
一個老PHP實現,它似乎被拋棄,但你可以看到如何使用它來發送包括引用或在此blogpost接收它們。
有一個純PHP實現XML-RPC client和server在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中的元標記中。
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
}
PEAR具有在實現用戶級PHP的XML-RPC客戶端和服務器,而無需任何特殊的擴展XML_RPC2 package。
謝謝,我不知道我可以從Zend中抽出一點點。甜! – James 2012-07-18 09:10:42