در این آموزش PHP , قصد داریم به شما نحوه اکسپورت مخاطبان بصورت vCard با PHP را به شما نمایش بدیم.
vCard یا VCF یک فایل مجازی مخاطب (contact) است که شامل اطلاعات مخاطبان در یک فرمت استاندارد است.
این فایل برای ضمیمه کردن و ارسال اطلاعات مخاطبان توسط ایمیل یا هم فرم الکتریکی دیگری برای انتقال است که برای تلفن های همراه هم می شود استفاده کرد.
در vCard , داده های مخاطب (Contact) مانند نام, ایمیل, آدرس, کمپانی, و غیره می تواند ذخیره شود.
قبلا یک مثال از ساخت فرم تماس با ما برای دریافت اطلاعات تماس از کاربر را دیدیم. در این مثال, داده های تماس کاربر در یک جدول از دیتابیس MySQL ذخیره شده است.
اطلاعات هر کاربر توسط PHP از دیتابیس خوانده و در فرمت جدول مانند لیست می شود. در این لیست, هر آیتم یک آپشن برای اکسپورت داده در فرمت vCard است.
همینکه فایل اکسپورت آماده شد, vCard مورد نظر برای دانلود به مرورگر ارسال می شود.
قبلا چندین مثال از اکسپورت نتایج جدول در فرمتی مثل CSV و اکسل را دیدیم. در آموزش اکسپورت مخاطبان بصورت vCard با PHP , قصد داریم از کتابخانه ای که به این منظور در گیت هاب وجود دارد در محیط لوکال بهره ببریم.
جدول داده های حدول به همراه آپشن اکسپورت vCard
این صفحه اطلاعات تماس کاربران را در یک فرم جدول-مانند نمایش می دهد. در این مثال PHP , از دستورات prepared در MySQL برای انجام عملیات دیتابیس استفاده کردیم.
در ابتدا, کویری SQL برای دریافت اطلاعات همه مخاطبان در یک آرایه PHP اجرا می شود. این آرایه مخاطبان در یک حلقه تکرار قرار گرفته و در یک نمایش جدول-مانند به همراه آپشن های اکسپورت مخاطبان بصورت vCard نمایش داده می شود.
با کلیک روی آیکون Export , عملیات اکسپورت PHP فراخوانی میشود. سپس مخاطب مورد نظر در یک فایل VCF برای دانلود آماده می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
<?php require_once "DBController.php"; $dbController = new DBController(); if(!empty($_GET["action"])) { $query = "SELECT * FROM tbl_contact WHERE id = ?"; $param_type = "i"; $param_value_array = array($_GET["id"]); $contactResult = $dbController->runQuery($query,$param_type,$param_value_array); require_once "VcardExport.php"; $vcardExport = new VcardExport(); $vcardExport->contactVcardExportService($contactResult); exit; } $query = "SELECT * FROM tbl_contact"; $result = $dbController->runBaseQuery($query); ?> <!DOCTYPE html> <html> <head> <title>How to Implement OTP SMS Mobile Verification in PHP with TextLocal</title> <link href="style.css" type="text/css" rel="stylesheet" /> </head> <body> <?php if(!empty($result)) { ?> <div class="tbl-contact"> <div class="contact-row-header"> <div class="col_name">Name</div> <div>Email</div> <div>Phone</div> <div>Address</div> <div class="action">Export</div> </div> <?php foreach($result as $k=>$v) { ?> <div class="contact-row"> <div class="col_name"><?php echo $result[$k]["first_name"]; ?> <?php echo $result[$k]["last_name"]; ?></div> <div><?php echo $result[$k]["email"]; ?></div> <div><?php echo $result[$k]["phone"]; ?></div> <div><?php echo $result[$k]["address"]; ?></div> <div class="action"><a href="index.php?action=export&id=<?php echo $result[$k]["id"]; ?>" title="Export to vCard"><img src="vcard_icon.png" alt="vCard"></a></div> </div> <?php } ?> </div> <?php } ?> </body> </html> |
کتابخانه vCard برای PHP
در این کلاس PHP , یک نمونه از کلاس کتابخانه vCard ساخته می شود. با داشتن رفرنس این آبجکت می تواند داده های مخاطب را به یک آرایه آبجکتی اضافه کنیم.
این آرایه آبجکتی هنگام اکسپورت به فایل VCF پاس داده می شود.
این کتابخانه vCard نیاز به کتابخانه Behat-Transliterator برای ترجمه نام ها دارد. بنابراین, کتابخانه Behat-Transliterator را دانلود و آن را را به عنوان یک dependency (پکیج وابسته) برای اجرای این مثال استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php use JeroenDesloovere\VCard\VCard; class VcardExport { public function contactVcardExportService($contactResult) { require_once 'vendor/Behat-Transliterator/Transliterator.php'; require_once 'vendor/jeroendesloovere-vcard/VCard.php'; // define vcard $vcardObj = new VCard(); // add personal data $vcardObj->addName($contactResult[0]["first_name"] . " " . $contactResult[0]["last_name"]); $vcardObj->addBirthday($contactResult[0]["date_of_birth"]); $vcardObj->addEmail($contactResult[0]["email"]); $vcardObj->addPhoneNumber($contactResult[0]["phone"]); $vcardObj->addAddress($contactResult[0]["address"]); return $vcardObj->download(); } } ?> |
کنترلر دیتابیس
این کلاس PHP برای مدیریت کانکشن پایگاه داده ما و دریافت اطلاعات از دیتابیس با دستورات prepare شده, ایجاد شده است.
تابع runBaseQuery()
کویری را دریافت و بدون پارامتر اجرا می کند. در تابع runQuery()
, نوع پارامترها و مقادیر آنها به عنوان آرگومان دریافت می شود. این آرگومان ها با کویری bind
می شود.
این تابع برای واکشی (fetch
) اطلعات مخاطب ها با id برای اکسپورت در یک فایل VCF استفاده می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<?php class DBController { private $host = "localhost"; private $user = "root"; private $password = "test"; private $database = "blog_samples"; private $conn; function __construct() { $this->conn = $this->connectDB(); } function connectDB() { $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database); return $conn; } function runBaseQuery($query) { $result = $this->conn->query($query); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $resultset[] = $row; } } return $resultset; } function runQuery($query, $param_type, $param_value_array) { $sql = $this->conn->prepare($query); $this->bindQueryParams($sql, $param_type, $param_value_array); $sql->execute(); $result = $sql->get_result(); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $resultset[] = $row; } } if(!empty($resultset)) { return $resultset; } } function bindQueryParams($sql, $param_type, $param_value_array) { $param_value_reference[] = & $param_type; for($i=0; $i<count($param_value_array); $i++) { $param_value_reference[] = & $param_value_array[$i]; } call_user_func_array(array( $sql, 'bind_param' ), $param_value_reference); } } ?> |
خروجی اکسپورت مخاطبان بصورت vCard با PHP
این اسکرین شات به شما لیستی از مخاطبان را با اطلاعات آنها و آپشن های اکسپورت نشان می دهد.
با کلیک روی آیکون های کنترل می توانید اطلاعات مخاطب را در یک فایل VCF دریافت کنید.
امیدوارم از آموزش اکسپورت مخاطبان بصورت vCard با PHP نهایت استفاده را برده باشید.
برای دانلود سورس کد کامل از باکس دانلود زیر استفاده کنید.
هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید.