⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vcard.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/*** @version $Id: vcard.php 10381 2008-06-01 03:35:53Z pasamio $* Modified PHP vCard class v2.0*//***************************************************************************PHP vCard class v2.0(cKai Blankenhornwww.bitfolge.de/enkaib@bitfolge.deThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.***************************************************************************/function encode($string) {	return escape(quoted_printable_encode($string));}function escape($string) {	return str_replace(';',"\;",$string);}// taken from PHP documentation commentsfunction quoted_printable_encode($input, $line_max = 76) {	$hex 		= array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');	$lines 		= preg_split("/(?:\r\n|\r|\n)/", $input);	$eol 		= "\r\n";	$linebreak 	= '=0D=0A';	$escape 	= '=';	$output 	= '';	for ($j=0;$j<count($lines);$j++) {		$line 		= $lines[$j];		$linlen 	= strlen($line);		$newline 	= '';		for($i = 0; $i < $linlen; $i++) {			$c 		= substr($line, $i, 1);			$dec 	= ord($c);			if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at eol only				$c = '=20';			} elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required				$h2 = floor($dec/16);				$h1 = floor($dec%16);				$c 	= $escape.$hex["$h2"] . $hex["$h1"];			}			if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted				$output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay				$newline = "    ";			}			$newline .= $c;		} // end of for		$output .= $newline;		if ($j<count($lines)-1) {			$output .= $linebreak;		}	}	return trim($output);}class vCard {	var $properties;	var $filename;	function setPhoneNumber($number, $type='') {	// type may be PREF | WORK | HOME | VOICE | FAX | MSG | CELL | PAGER | BBS | CAR | MODEM | ISDN | VIDEO or any senseful combination, e.g. "PREF;WORK;VOICE"		$key = 'TEL';		if ($type!='') {			$key .= ';'. $type;		}		$key.= ';ENCODING=QUOTED-PRINTABLE';		$this->properties[$key] = quoted_printable_encode($number);	}	// UNTESTED !!!	function setPhoto($type, $photo) { // $type = "GIF" | "JPEG"		$this->properties["PHOTO;TYPE=$type;ENCODING=BASE64"] = base64_encode($photo);	}	function setFormattedName($name) {		$this->properties['FN'] = quoted_printable_encode($name);	}	function setName($family='', $first='', $additional='', $prefix='', $suffix='') {		$this->properties['N'] = "$family;$first;$additional;$prefix;$suffix";		$this->filename = "$first%20$family.vcf";		if ($this->properties['FN']=='') {			$this->setFormattedName(trim("$prefix $first $additional $family $suffix"));		}	}	function setBirthday($date) { // $date format is YYYY-MM-DD		$this->properties['BDAY'] = $date;	}	function setAddress($postoffice='', $extended='', $street='', $city='', $region='', $zip='', $country='', $type='HOME;POSTAL') {	// $type may be DOM | INTL | POSTAL | PARCEL | HOME | WORK or any combination of these: e.g. "WORK;PARCEL;POSTAL"		$key = 'ADR';		if ($type!='') {			$key.= ";$type";		}		$key.= ';ENCODING=QUOTED-PRINTABLE';		$this->properties[$key] = encode($name).';'.encode($extended).';'.encode($street).';'.encode($city).';'.encode($region).';'.encode($zip).';'.encode($country);		if ($this->properties["LABEL;$type;ENCODING=QUOTED-PRINTABLE"] == '') {			//$this->setLabel($postoffice, $extended, $street, $city, $region, $zip, $country, $type);		}	}	function setLabel($postoffice='', $extended='', $street='', $city='', $region='', $zip='', $country='', $type='HOME;POSTAL') {		$label = '';		if ($postoffice!='') {			$label.= $postoffice;			$label.= "\r\n";		}		if ($extended!='') {			$label.= $extended;			$label.= "\r\n";		}		if ($street!='') {			$label.= $street;			$label.= "\r\n";		}		if ($zip!='') {			$label.= $zip .' ';		}		if ($city!='') {			$label.= $city;			$label.= "\r\n";		}		if ($region!='') {			$label.= $region;			$label.= "\r\n";		}		if ($country!='') {			$country.= $country;			$label.= "\r\n";		}		$this->properties["LABEL;$type;ENCODING=QUOTED-PRINTABLE"] = quoted_printable_encode($label);	}	function setEmail($address) {		$this->properties['EMAIL;INTERNET'] = $address;	}	function setNote($note) {		$this->properties['NOTE;ENCODING=QUOTED-PRINTABLE'] = quoted_printable_encode($note);	}	function setURL($url, $type='') {	// $type may be WORK | HOME		$key = 'URL';		if ($type!='') {			$key.= ";$type";		}		$this->properties[$key] = $url;	}	function getVCard() {		$text = 'BEGIN:VCARD';		$text.= "\r\n";		$text.= 'VERSION:2.1';		$text.= "\r\n";		foreach($this->properties as $key => $value) {			$text.= "$key:$value\r\n";		}		$text.= 'REV:'. date('Y-m-d') .'T'. date('H:i:s') .'Z';		$text.= "\r\n";		$text.= 'MAILER:PHP vCard class by Kai Blankenhorn';		$text.= "\r\n";		$text.= 'END:VCARD';		$text.= "\r\n";		return $text;	}	function getFileName() {		return $this->filename;	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -