Download the PHP package pear/xml_xrd without Composer
On this page you can find all versions of the php package pear/xml_xrd. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package xml_xrd
Short Description PHP library to parse and generate "Extensible Resource Descriptor (XRD) Version 1.0" files
License LGPL
Informations about the package xml_xrd
XML_XRD
PHP library to parse and generate Extensible Resource Descriptor (XRD) Version 1.0 files. It supports loading and saving XML (XRD) and JSON (JRD) markup.
XRD and JRD files are used for .well-known/host-meta
files as standardized
in RFC 6415: Web Host Metadata.
Webfinger, based on JRD, can be used to discover information about users by just their e-mail address, e.g. their OpenID provider URL.
The XRD format supercedes the XRDS format defined in XRI 2.0, which is used in the Yadis communications protocol.
Examples
Loading XRD files
Load from file
<XRD>
...
XRD;
require_once 'XML/XRD.php';
$xrd = new XML_XRD();
try {
$xrd->loadString($myxrd, 'xml');
} catch (XML_XRD_Exception $e) {
die('Loading XRD string failed: ' . $e->getMessage());
}
Verification
Verify subject
Check if the XRD file really describes the resource/URL that we requested the XRD for:
If you want a JSON file for JRD:
echo $x->to('json');
Webfinger file
Error handling
When loading a file, exceptions of type XML_XRD_Exception
may be thrown.
All other parts of the code do not throw exceptions but fail gracefully by returning
null
, e.g. when a property does not exist.
Using loadFile()
may result in PHP warnings like:
Warning: simplexml_load_file(https://example.org/) failed to open stream: Connection refused
This cannot be prevented properly, so you either have to silence it with @
or fetch the file manually and use loadString()
.
TODO
- XML signature verification
- (very optional) XRDS (multiple XRD)?
Links
- XRD 1.0 standard specification
- OASIS XRI committee
- WebFinger protocol draft
- WebFinger: Common Link relations
- More link relations
- RFC 5785: Defining Well-Known Uniform Resource Identifiers
- RFC 6415: Web Host Metadata
- WebFinger draft