PHP XMLRPC сервер без расширения

Я пытаюсь создать сценарий pingback для нашего сайта, однако 1&1 не имеет установленного расширения XMLRPC.

Существуют ли альтернативы созданию сценария pingback/trackback без использования этого расширения - и есть ли демоверсии?

2 ответа

Решение

phpxmlrpc

Старая реализация Php, и она, похоже, заброшена, но вы можете увидеть, как использовать ее для отправки пингбэков или получения их в этом посте.

Zend

В среде Zend есть чистая реализация PHP- клиента и сервера XML-RPC, вы можете использовать ее для вызова или реализации службы pingback, и она хорошо документирована. Если вы не хотите использовать полный фреймворк только в качестве библиотеки компонентов, просто загрузите фреймворк, извлеките из него lib/Zend в каталог и включите файл верхнего уровня компонента. (вы можете настроить автозагрузку для удобства)

Описание службы 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.

Пингбэк сервис скелет

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, который реализует клиент и сервер XML-RPC в пользовательском пространстве PHP без какого-либо специального расширения.

Другие вопросы по тегам