ساخت کد qr در php + دانلود اسکریپت
سلام
کد QR امروزه در وب سایت ها و اپلیکیشن های زیادی دیده میشود که کاربردهای بسیاری دارد چرا که کاربر با استفاده از دوربین گوشی میتواند به محتوای بارکد که توسط سازنده آن تولید شده است دسترسی پیدا کند؛ محتوای کد QR می تواند آدرس یک صفحه اینترنتی( آدرس وب سایت، آدرس دانلود اپلیکیشن، آدرس عکس یا ویدئو یا هر چیز دیگری باشد) در این مقاله آموزش PHP قصد داریم تا شما را با ساختن کد qr در php به سادگی آشنا کنیم، در ادامه همراه بپرسم باشید.
شروع آموزش:
قصد داریم تا یک مینی اسکریپت ساخت کد qr اختصاصی برای خودمان طراحی کنیم تا بتوانیم از آن در هر مواقعی استفاده کنیم.
- کد QR حاوی مقدار زیادی اطلاعات در یک تصویر است، اما افراد نمی توانند اطلاعات درون این تصویر را بخوانند. این اطلاعات فقط توسط دستگاه قابل خواندن است. در این آموزش، در مورد Google Chart API صحبت خواهیم کرد. این Google API به ما برای ساخت کد QR کمک میکند. ما می توانیم از این API استفاده کنیم:
۱ |
$googleChartAPI = 'http://chart.apis.google.com/chart'; |
- یک فایل کلاس برای ایجاد تصویر کد QR با فرمت png ایجاد کنید، این کلاس شامل چندین روش برای ایجاد تصویر کد QR شما است. پس از استفاده از این کلاس کد QR، به سادگی متد مربوطه را فراخوانی کنید و اطلاعات مورد نیاز روش را ارسال کنید و سپس تصویر QR خود را ایجاد کنید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ ۴۶ ۴۷ ۴۸ ۴۹ ۵۰ ۵۱ ۵۲ ۵۳ ۵۴ ۵۵ ۵۶ ۵۷ ۵۸ ۵۹ ۶۰ ۶۱ ۶۲ ۶۳ ۶۴ ۶۵ ۶۶ ۶۷ ۶۸ ۶۹ ۷۰ ۷۱ ۷۲ ۷۳ ۷۴ ۷۵ ۷۶ ۷۷ ۷۸ ۷۹ ۸۰ ۸۱ ۸۲ ۸۳ ۸۴ ۸۵ ۸۶ ۸۷ ۸۸ ۸۹ ۹۰ ۹۱ ۹۲ ۹۳ ۹۴ ۹۵ ۹۶ ۹۷ ۹۸ ۹۹ ۱۰۰ ۱۰۱ ۱۰۲ ۱۰۳ ۱۰۴ ۱۰۵ ۱۰۶ ۱۰۷ ۱۰۸ ۱۰۹ ۱۱۰ ۱۱۱ ۱۱۲ ۱۱۳ ۱۱۴ ۱۱۵ ۱۱۶ ۱۱۷ ۱۱۸ ۱۱۹ ۱۲۰ |
<?php /** * QR_BarCode - Barcode QR Code Image Generator * @author Legend Blogs * @url https://beporsam.ir */ class QR_BarCode{ // Google Chart API URL private $googleChartAPI = 'http://chart.apis.google.com/chart'; // Code data private $codeData; /** * URL QR code * @param string $url */ public function url($url = null){ $this->codeData = preg_match("#^https?\:\/\/#", $url) ? $url : "http://{$url}"; } /** * Text QR code * @param string $text */ public function text($text){ $this->codeData = $text; } /** * Info QR code * @param string $name * @param string $email */ public function info($name, $email){ $this->codeData = "NAME:{$name};MATMSG:TO:{$email};"; } /** * Email address QR code * @param string $email * @param string $subject * @param string $message */ public function email($email = null, $subject = null, $message = null) { $this->codeData = "MATMSG:TO:{$email};SUB:{$subject};BODY:{$message};;"; } /** * Phone QR code * @param string $phone */ public function phone($phone){ $this->codeData = "TEL:{$phone}"; } /** * SMS QR code * @param string $phone * @param string $text */ public function sms($phone = null, $msg = null) { $this->codeData = "SMSTO:{$phone}:{$msg}"; } /** * VCARD QR code * @param string $name * @param string $address * @param string $phone * @param string $email */ public function contact($name = null, $address = null, $phone = null, $email = null) { $this->codeData = "MECARD:N:{$name};ADR:{$address};TEL:{$phone};EMAIL:{$email};;"; } /** * Content (gif, jpg, png, etc.) QR code * @param string $type * @param string $size * @param string $content */ public function content($type = null, $size = null, $content = null) { $this->codeData = "CNTS:TYPE:{$type};LNG:{$size};BODY:{$content};;"; } /** * Generate QR code image * @param int $size * @param string $filename * @return bool */ public function qrCode($size = ۲۰۰, $filename = null) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->googleChartAPI); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "chs={$size}x{$size}&cht=qr&chl=" . urlencode($this->codeData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT, ۳۰); $img = curl_exec($ch); curl_close($ch); if($img) { if($filename) { if(!preg_match("#\.png$#i", $filename)) { $filename .= ".png"; } return file_put_contents($filename, $img); } else { header("Content-type: image/png"); print $img; return true; } } return false; } } ?> |
- این فایل کلاس را در فایل پروژه خود قرار دهید و یک شی برای ایجاد تصویر کد QR خود ایجاد کنید:
۱ ۲ |
include('QR_BarCode.php'); $qr = new QR_BarCode() |
- کار به اتمام رسید، حالا فقط کافیه تا تو پروژه ی خودتون از این کلاس استفاده کنید، مثال زیر را نگاه کنید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ ۴۶ ۴۷ ۴۸ ۴۹ ۵۰ |
<!DOCTYPE html> <?php //include QR-Code generator file include('QR_BarCode.php'); //Object for QR Code $qr = new QR_BarCode() ?> <html lang="en"> <head> <title>QR-Code Generating Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <h2 class="text-danger">QR-Code Generating Example</h2> <form method="post"> <div class="form-group"> <label for="Name">Name</label> <input type="text" placeholder="Name" class="form-control" name="name" required=""> </div> <div class="form-group"> <label for="Email">Email address</label> <input type="email" placeholder="Email" class="form-control" name="email" required=""> </div> <div class="statusMsg"></div> <input type="submit" name="submit" class="btn btn-danger" value="Submit"/> </form> <div> <?php if(isset($_POST['submit'])){ $name = $_POST['name']; $email = $_POST['email']; //create text QR code $qr->info($name, $email); //Save QR in image $qr->qrCode(۴۰۰,'qr-beporsam.png'); } //Display QR ?> <img src="qr-beporsam.png" alt="qr-beporsam" /> </div> </div> </body> </html> |
کار به اتمام رسید، الان خروجی شما باید چیزی شبیه این باشد:
در انتها میتوانید سورس را را رایگان دانلود کنید.
در صورت بروز هر گونه مشکل در رابطه با این آموزش میتوانید در بخش پرسش و پاسخ سایت، سوال خود را بپرسید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید