2

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

是否有任何替代方法可以在不需要此扩展的情况下创建 pingback/trackback 脚本 - 是否有任何演示?

4

2 回答 2

2

phpxmlrpc

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

曾德

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

pingback 服务描述在这里

如果你有这样的设置,你可以去这篇博文获取客户端/服务器代码的指针,我给你一些 Zend 类的例子(这篇文章使用 xmlrpc 扩展)

发送pingback:

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
}
于 2012-07-17T16:24:14.137 回答
0

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

于 2013-09-30T06:23:40.393 回答