PHP XMLRPC服务器没有扩展名

时间:2012-07-17 15:15:53

标签: php xml-rpc pingback

我正在尝试为我们的网站创建一个pingback脚本,但1& 1没有我们需要安装的XMLRPC扩展。

有没有其他选择来创建pingback / trackback脚本而不需要这个扩展 - 是否有任何演示?

2 个答案:

答案 0 :(得分:2)

phpxmlrpc

旧的Php实现似乎已被放弃,但您可以看到如何使用它来发送pingback或在此blogpost中接收它们。

Zend

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

pingback服务描述为here

如果你有这个设置,你可以转到这个blogpost获取客户端/服务器代码的指针,我给你一些Zend类的例子(帖子使用xmlrpc扩展名)

发送pingbacks:

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
}

答案 1 :(得分:0)

PEAR具有XML_RPC2 package,它在PHP用户空间中实现XML-RPC客户端和服务器,无需任何特殊扩展。