private function find_baseurls($services) { foreach ($services as &$service) { $baseurl = $service['baseurl']; $dnssrv = $service['dnssrv']; $paths = array(); $dnsresults = dns_get_record($dnssrv, DNS_TXT); foreach ($dnsresults as $dnsresult) { if ($dnsresult['host'] != $dnssrv) { continue; } foreach ($dnsresult['entries'] as $ent) { if (preg_match('^path=(.+)', $ent, $match)) { $paths[] = $match[1]; } } } // as fallback try these default paths $paths[] = '/.well-known/carddav'; $paths[] = '/'; $service['paths'] = $paths; } return $services; } public static function initClass() { self::$helper = new carddav_common('DISCOVERY: '); } } carddav_discovery::initClass();