/** * Returns a valid and unused vCard id * * @return string $vcard_id Valid vCard id */ private function generate_vcard_id() { $vcard_id = null; for ($number = 0; $number <= 25; $number++) { if ($number == 8 || $number == 17) { $vcard_id .= '-'; } else { $vcard_id .= $this->vcard_id_chars[mt_rand(0, count($this->vcard_id_chars) - 1)]; } } try { $carddav = new carddav_backend($this->url); $carddav->set_auth($this->username, $this->password); $result = $carddav->query($this->url . $vcard_id . $this->url_vcard_extension, 'GET'); if ($result['http_code'] !== 404) { $vcard_id = $this->generate_vcard_id(); } return $vcard_id; } catch (Exception $e) { throw new Exception($e->getMessage(), self::EXCEPTION_COULD_NOT_GENERATE_NEW_VCARD_ID); } }
/** * Returns a valid and unused vCard id * * @return string Valid vCard id */ private function generate_vcard_id() { $id = null; for ($number = 0; $number <= 25; $number++) { if ($number == 8 || $number == 17) { $id .= '-'; } else { $id .= $this->vcard_id_chars[mt_rand(0, count($this->vcard_id_chars) - 1)]; } } $this->current_id = $id; $carddav = new carddav_backend($this->url); $carddav->set_auth($this->username, $this->password); if ($carddav->query($this->url . $id . $this->ext, 'GET', null, null, true)) { return $this->generate_vcard_id(); } else { return $id; } }