没有扩展的PHP XMLRPC服务器



我正试图为我们的网站创建一个ping back脚本,然而1&1没有我们要求安装的XMLRPC扩展。

除了在不需要这个扩展的情况下创建pingback/trackback脚本之外,还有其他选择吗?有没有演示?

phpxmlrpc

一个旧的Php实现,它似乎被放弃了,但你可以在这篇博客文章中看到如何使用它来发送或接收它们。

Zend

Zend框架中有一个XML-RPC客户端和服务器的纯php实现,您可以使用它来调用或实现一个pingback服务,并且它有很好的文档记录。如果您不想将整个框架仅用作组件库,只需下载框架,将lib/Zond从中提取到一个目录中,并包含组件的顶级文件即可。(为了方便起见,您可能需要设置自动加载)

pingback服务说明在这里。

如果你已经设置好了,你可以去这篇博客文章中寻找客户端/服务器代码的指针,我给你举了一些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
}

服务url将在博客文章的http头中,或者在元标记中,如pingback文档中所述。

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
}

PEAR有XML_RPC2包,它在PHP用户区实现了XML-RPC客户端和服务器,而不需要任何特殊的扩展。

最新更新