/** * @return an array of Target XRD URLs. */ public function getTargetXrdUrlsOnHost($hostname) { $targetXrdUrls = array(); // Look up the OExchange relations in the host's main XRD $hostMetaUrl = "http://" . $hostname . "/.well-known/host-meta"; dbglog("Fetching host-meta from " . $hostMetaUrl); $xrd = new XrdLinkReader(); $hostLinks = $xrd->getLinksFromUrl($hostMetaUrl); dbglog("Found " . sizeof($hostLinks) . " links in host-meta"); foreach ($hostLinks as $link) { if ($link["REL"] == "http://oexchange.org/spec/0.8/rel/resident-target") { dbglog("Found a link with our relation type..."); // This link represents an oexchange target array_push($targetXrdUrls, $link["HREF"]); } } return $targetXrdUrls; }
<?php require_once "XrdLinkReader.php"; $xrd = new XrdLinkReader(); echo "<h2>http://gmail.com/.well-known/host-meta</h2>"; printLinks($xrd->getLinksFromUrl("http://gmail.com/.well-known/host-meta")); echo "<h2>http://www.oexchange.org/demo/linkeater/oexchange.xrd</h2>"; printLinks($xrd->getLinksFromUrl("http://www.oexchange.org/demo/linkeater/oexchange.xrd")); echo "<h2>http://www.willmeyer.com/.well-known/host-meta</h2>"; printLinks($xrd->getLinksFromUrl("http://www.willmeyer.com/.well-known/host-meta")); function printLinks($links) { foreach ($links as $link) { echo " Link: <br/>"; foreach ($link as $name => $val) { echo " " . $name . ": " . $val . "<br/>"; } } }