首页 > 编程语言 >PHP 之生成名片二维码与vcard格式

PHP 之生成名片二维码与vcard格式

时间:2023-06-03 10:03:20浏览次数:38  
标签:QR width 二维码 qr logo PHP vcard

一、vcard格式

BEGIN:VCARD
VERSION:3.0
FN:样子
TEL;CELL;VOICE:18333333333
TEL;WORK;VOICE:010-66600000
TEL;WORK;FAX:010-66600001
EMAIL;PREF;INTERNET:[email protected]
URL:http://baidu.com
orG:网络工作室
ROLE:技术部
TITLE:CTO
ADR;WORK;POSTAL:北四环中路35号;100101
REV:2012-12-27T08:30:02Z
END:VCARD

二、示例代码

require_once 'phpqrcode.php';

$truename = "Yang";
$phone = "13544444444";
$tel = "18311111111";
$emailmp = "[email protected]";
$addressmp = "北四环中路35号";
$career = "技术部";
$company = "网络公司";
//个人主页
$hp = "";

//构建一个 vcard 格式数据
$vcard = 
    "BEGIN:VCARD".
    "\nVERSION:3.0".
    "\nFN:$truename".
    "\nTEL;CELL;VOICE:$phone".
    "\nTEL;WORK;VOICE:$tel".
    "\nEMAIL:$emailmp".
    "\nADR:$addressmp".
    "\nTITLE:$career".
    "\nORG:$company".
    "\nURL:$hp".
    "\nEND:VCARD";
 
//二维码信息,用urlencode编码
//$data = urlencode($vcard);
$data = urlencode($vcard);

$errorCorrectionLevel = 'M';//容错级别
$matrixPointSize = 4;//生成图片大小
//生成二维码图片 
QRcode::png($vcard, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2); 
$logo = false;//准备好的logo图片 
$QR = 'qrcode.png';//已经生成的原始二维码图 

$QR = imagecreatefromstring(file_get_contents($QR)); 
if ($logo !== FALSE) { 
 //$QR = imagecreatefromstring(file_get_contents($QR)); 
 $logo = imagecreatefromstring(file_get_contents($logo)); 
 $QR_width = imagesx($QR);//二维码图片宽度 
 $QR_height = imagesy($QR);//二维码图片高度 
 $logo_width = imagesx($logo);//logo图片宽度 
 $logo_height = imagesy($logo);//logo图片高度 
 $logo_qr_width = $QR_width / 5; 
 $scale = $logo_width/$logo_qr_width; 
 $logo_qr_height = $logo_height/$scale; 
 $from_width = ($QR_width - $logo_qr_width) / 2; 
 //重新组合图片并调整大小 
 imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, 
 $logo_qr_height, $logo_width, $logo_height); 
} 
//输出图片 
Header("Content-type: image/png");
ImagePng($QR);

 

标签:QR,width,二维码,qr,logo,PHP,vcard
From: https://www.cnblogs.com/yang-2018/p/17453342.html

相关文章

  • php rabbitmq队列的几种管理方案
     这里就懒得记录了,直接放上一篇还不错的知乎博主的博客吧。点击前往  ......
  • Linux 编译安装 php 扩展 amqp
    这里最大的坑,就是  rabbitmq-c和amqp扩展版本不符,导致的各种bug。其他也没啥,这里简单记录下:我这里使用的环境:php7.4  、rabbitmq-c0.7.1、amqp1.9.4. 安装rabbitmq-c(注意记住你的安装位置,下一步要用)wgethttps://github.com/alanxz/rabbitmq-c/releases/download......
  • 【web 开发】PHP8中对数组操作的新变化
    自动创建元素的顺序改变在PHP8中,引用赋值时,自动创建的数组元素或者对象属性的顺序和PHP7版本相比发生了变化,下面我们通过例子来体验下变化在哪里.<?php$array=[];$array['a']=&$array['b'];$array['b']=1;echo"\n";var_dump($array);?>执行结果如下:这个结果是PHP8......
  • php写守护进程(Daemon)
     守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。php也可以实现守护进程的功能。 1、基本概念    进程            每个进程都有一个父进程,子进程退出,父进程能得到......
  • 使用php easydamin
    #installcomposer[root@izbpot8zbin]#curl-sShttps://getcomposer.org/installer|phpAllsettingscorrectforusingComposerDownloading...#movefileComposer(version2.5.7)successfullyinstalledto:/usr/bin/composer.pharUseit:phpcomposer.phar[root......
  • PHP大文件分片上传/多线程上传
    ​ PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此......
  • php thinkphp 使用系统环境变量
    1.问题,打印$_ENV为空,thinkphpenv()函数和ENV::get()都获取不到系统的环境变量  在docker运行环境的时候,指定了环境变量, 可以使用getenv()函数获取,也可以在php.ini中修改配置  variables_order="EGPCS" Thisdirectivedetermineswhichsuperglobalarrays......
  • thinkphp安装使用教程
    1.thinkphp介绍thinkphp是php的开源框架,可以方便、快捷地开发web项目,项目运行在服务器上。实际使用thinkphp开发web项目时,需要将项目部署在Linux服务器上,涉及php、mysql安装配置等,在学习thinkphp时,可以有两种方案方案1:拥有实体服务器或者云服务器,可直接配置框架相关环境,进行学......
  • PHP类和方法注释规范:
    /***@name名字*@abstract申明变量/类/方法*@access指明这个变量、类、函数/方法的存取权限*@author函数作者的名字和邮箱地址*@category组织packages*@copyright指明版权信息*@const指明常量*@deprecate指明不推荐或者是废弃的信息*@example示例*@ex......
  • Php中filter举例
    以下是一个使用PHPfilter的示例代码:$email="example.com";if(!filter_var($email,FILTER_VALIDATE_EMAIL)){echo("$emailisnotavalidemailaddress");}在此示例中,我们使用了PHP中的filter_var函数来验证一个电子邮件地址是否有效。如果电子邮件地址无效,将输出一......