} $result = mysql_query($sql); while ($address = mysql_fetch_array($result)) { $vcfname = $address['firstname'] . (isset($address['middlename']) ? "_" . $address['middlename'] : "") . "_" . $address['lastname'] . "-" . $address['id'] . ".vcf"; $vcfname = str_replace(" ", "_", $vcfname); // middlename may contain spaces, for example "van der" in Dutch setlocale(LC_ALL, 'en_US.UTF8'); $vcfname = str_replace("?", "", iconv('UTF-8', 'ASCII//TRANSLIT', $vcfname)); $zip->addFromString($vcfname, address2vcard($address)); } $zip->close(); readfile($filename); unlink($filename); } elseif (isset($_REQUEST['type']) && $_REQUEST['type'] == "vCard-one") { Header("Content-Type: text/x-vCard"); $filename = utf8_to_latin1("All_Contacts_of_domin-" . $domain_id . "-" . date("Y_m_d-Hi")); Header('Content-Disposition: attachment; filename="' . $filename . '.vcf"'); require "include/export.vcard.php"; $sql = "SELECT * FROM {$month_from_where}"; $result = mysql_query($sql); while ($links = mysql_fetch_array($result)) { echo address2vcard($links); } } elseif (isset($_REQUEST['type']) && $_REQUEST['type'] == "xls-Nokia") { require "include/export.xls-nokia.php"; } else { include "include/format.inc.php"; ?> <title><?php echo ucfmsg("ADDRESS_BOOK") . ($group_name != "" ? " ({$group_name})" : ""); ?>
function address2vcard($links) { $firstname = utf8_to_latin1($links["firstname"]); $middlename = utf8_to_latin1($links["middlename"]); $lastname = utf8_to_latin1($links["lastname"]); $title = utf8_to_latin1($links["title"]); $company = utf8_to_latin1($links["company"]); $address = utf8_to_latin1($links["address"]); $home = utf8_to_latin1($links["home"]); $mobile = utf8_to_latin1($links["mobile"]); $work = utf8_to_latin1($links["work"]); $fax = utf8_to_latin1($links["fax"]); $email = utf8_to_latin1($links["email"]); $email2 = utf8_to_latin1($links["email2"]); $email3 = utf8_to_latin1($links["email3"]); $homepage = utf8_to_latin1($links["homepage"]); $bday = utf8_to_latin1($links["bday"]); $bmonth_num = utf8_to_latin1($links["bmonth_num"]); $byear = utf8_to_latin1($links["byear"]); $aday = utf8_to_latin1($links["aday"]); $amonth_num = utf8_to_latin1($links["amonth_num"]); $ayear = utf8_to_latin1($links["ayear"]); $phone2 = utf8_to_latin1($links["phone2"]); $address2 = utf8_to_latin1($links["address2"]); $result = "BEGIN:VCARD\n"; $result .= "VERSION:2.1\n"; $result .= "N:" . (!empty($middlename) ? "{$middlename} " : "") . "{$lastname};{$firstname};;;;\n"; $result .= "FN:{$firstname}" . (!empty($middlename) ? " {$middlename}" : "") . " {$lastname}\n"; $result .= "ORG:{$company}\n"; $result .= "TITLE:{$title}\n"; $adr = label2adr($address); $result .= "ADR;home:" . $adr['pbox'] . ";" . $adr['exta'] . ";" . $adr['addr'] . ";" . $adr['city'] . ";" . $adr['region'] . ";" . $adr['zip'] . ";" . $adr['country'] . "\n"; $adr = label2adr($address2); $result .= "ADR;work:" . $adr['pbox'] . ";" . $adr['exta'] . ";" . $adr['addr'] . ";" . $adr['city'] . ";" . $adr['region'] . ";" . $adr['zip'] . ";" . $adr['country'] . "\n"; $result .= "TEL;HOME;VOICE:{$home}\n"; $result .= "TEL;cell;VOICE:{$mobile}\n"; $result .= "TEL;work;VOICE:{$work}\n"; $result .= "TEL;fax:{$fax}\n"; $result .= "TEL;voice:{$phone2}\n"; $result .= "EMAIL;PREF;INTERNET:{$email}\n"; $result .= "EMAIL;INTERNET:{$email2}\n"; $result .= "EMAIL;INTERNET:{$email3}\n"; $result .= "URL;WORK:{$homepage}\n"; $result .= "BDAY:" . "{$byear}-" . (strlen($bmonth_num) == 1 ? "0" : "") . "{$bmonth_num}-" . (strlen($bday) == 1 ? "0" : "") . "{$bday}\n"; $result .= "X-ANNIVERSARY:" . "{$ayear}-" . (strlen($amonth_num) == 1 ? "0" : "") . "{$amonth_num}-" . (strlen($aday) == 1 ? "0" : "") . "{$aday}\n"; $result .= "END:VCARD\n"; return $result; }