tedeh/pingback

Pingback客户端和服务器实现

1.3.2 2012-08-31 13:00 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:27:38 UTC


README

由Tedde Lundgren创建并享有版权,许可协议为MIT。

简介

Pingback,根据维基百科的描述,是“三种链接回传方式之一,网络作者请求当有人链接到他们的文档时通知他们的一种方法”。更确切地说,这是一个基于XML-RPC的显式定义的程序,使得网络应用程序(通常是博客)能够就链接进行通信。

这个库是为了符合官方pingback规范而构建的,支持pingback请求的发送和接收。

需求

需求主要集中在PHP5中常见库。

使用说明和实现注意事项

概述

该库由三个类组成。

  • Pingback_Server管理服务器和请求的复合验证
  • Pingback_Utility提供一组静态方法以帮助服务器和客户端
  • Pingback_Exception是库抛出异常的类

Pingback_Utility

Pingback_Utility包含以下静态方法。

Pingback_Utility::isURL()

  • @param string $url URL
  • @return boolean 是否为有效URL

返回一个布尔值,确定第一个参数是否为有效URL。

Pingback_Utility::isPingbackEnabled()

  • @param string $url URL
  • @return boolean 是否支持pingback

返回一个布尔值,确定第一个参数是否支持接收pingback。

Pingback_Utility::getRawPostData()

  • @return string 原始POST数据

读取原始、未过滤的POST数据并返回它

Pingback_Utility::getPingbackURL()

  • @param string @url URL
  • @return string 如果找到,则返回服务器地址

从第一个参数中提取pingback URL。

PingbackUtility::isBacklinking()

  • @param string $from 页面的URL
  • @param string $to 至少应存在于一个链接中的URL
  • @return boolean 是否存在链接

确定第一个参数是否链接到第二个。

PingbackUtility::sendPingback()

  • @param string $from pingback的发起者
  • @param string $to pingback的目标
  • @param string $server 服务器URL
  • @return string 服务器原始响应

客户端实现。接受三个参数。第一个是pingback请求的源URL(发起者),第二个是目标URL,第三个是pingback服务器的URL。返回服务器的原始响应,可以很容易地用xmlrpc_decode_request()解析。

Pingback_Server

PingbackServer 是一个可实例化的类,表示 pingback 服务器资源。对于有效的 pingback 请求的大多数要求都自动评估。然而,有两个具体的要求必须通过额外的、由用户提供的逻辑来评估。这两个要求的相应错误是

  • Pingback_Server::RESPONSE_FAULT_ALREADY_REGISTERED pingback 已经注册
  • Pingback_Server::RESPONSE_FAULT_ACCESS_DENIED 服务器资源的访问已被拒绝

在执行绑定的请求后,实现者可以使用 Pingback_Server->setFault() 来确保如果请求的所有要求都没有满足,则返回适当的响应。

Pingback_Server->__construct()

  • @param array $options 选项数组

接收一个选项数组,这些选项将自动设置。创建服务器实例并启用服务器上的 pingback 方法。

Pingback_Server->getOption()

  • @param string $option 要返回的选项
  • @return mixed 值或不存在时为 null

返回一个选项。

Pingback_Server->setOption()

  • @param string $option 选项名称
  • @param mixed $value 要设置的值

接收一个选项数组。

Pingback_Server->setOptions()

  • @param array $options 选项数组

接收一个选项数组。

Pingback_Server->execute()

  • @param string $request 评估此请求

评估给定的请求。如果没有提供参数,则评估已设置的请求。

Pingback_Server->setResponse()

  • @param string $response 响应

将响应设置为字符串。

Pingback_Server->setRequest()

  • @param string $request 请求

将请求设置为字符串。

Pingback_Server->getRequest()

  • @return string 请求

返回请求。

Pingback_Server->getResponse()

  • @return string 响应

返回响应。

Pingback_Server->getSourceURL()

  • @return string 源 URL

从请求中返回源 URL。

Pingback_Server->getTargetURL()

  • @return string 目标 URL

从请求中返回目标 URL。

Pingback_Server->getTargetURL()

  • @return boolean 目标 URL

从请求中返回目标 URL。

Pingback_Server->getFaultAsArray()

  • @param integer $faultCode 故障代码
  • @return array 故障(代码和字符串)格式化为数组

以适合响应的数组形式返回传递的故障代码。

Pingback_Server->setFault()

  • @param integer $faultCode 要设置的故障代码

设置请求的故障代码。

Pingback_Server->getSuccessAsArray()

  • @return array 成功数组

以适合响应的数组形式返回成功响应。

Pingback_Server->setSuccess()

标记当前请求为成功。

Pingback_Server->isValid()

  • @return boolean 请求有效性

返回当前请求是否被认为是有效的。

可用选项

设置选项的方法支持以下选项名称和值

  • string 'encoding' 服务器使用的编码

响应

Pingback_Server 有一些类常量可以与服务器实例上的适当方法一起使用。服务器返回的实际消息可以通过更改 Pingback_Server->responses 数组中的字符串来操作(其中数组的键对应于类常量)。

  • Pingback_Server::RESPONSE_FAULT_GENERIC 未知错误
  • Pingback_Server::RESPONSE_FAULT_SOURCE 源链接无效
  • Pingback_Server::RESPONSE_FAULT_SOURCE_LINK 源未反向链接到目标
  • Pingback_Server::RESPONSE_FAULT_TARGET 目标链接无效
  • Pingback_Server::RESPONSE_FAULT_TARGET_INVALID 目标未启用 pingback
  • Pingback_Server::RESPONSE_FAULT_ALREADY_REGISTERED Pingback 已经注册
  • Pingback_Server::RESPONSE_FAULT_ACCESS_DENIED 访问拒绝
  • Pingback_Server::RESPONSE_SUCCESS 表示成功