zblog php自动生成文章二维码图片教程

想给每篇文章添加二维码图片方便访客手机扫描阅读,但是每次添加文章都要手动制作和上传二维码图片明显会比较麻烦,而且如果更新的文章数量较多,更会影响到效率,因此自动生成二维码图片就显得很重要,实现方法可以通过第三方网站提供的二维码API接口实现,下面博客吧分享通过二维码API接口生成二维码图片并保存在服务器的方法教程。

操作步骤:

1、在当前主题的根目录中创建文件夹qrcode/,并设置权限0777或0755;

2、在当前主题模板的include.php文件中,添加以下函数代码:

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
//by www.boke8.net
define( 'ABSPATH', dirname(__FILE__) . '/' );
function boke8_get_qr($article){
	global $zbp;	
	$localqr =  ABSPATH .'/qrcode/'.$article->ID.'.jpg';
	if (!is_file($localqr)) {
		boke8_set_qr( "http://api.qrserver.com/v1/create-qr-code/?size=200x200&data=".$article->Url ,$article->ID.".jpg");
	}
}
function boke8_set_qr($url,$qrpic){
	$path = ABSPATH . 'qrcode';
	set_time_limit (10);
	$destination_folder = $path?$path.'/':''; 
	$localname = $destination_folder .$qrpic;     
	$file = fopen ($url, "rb");
	if ($file) {     
		$newf = fopen ($localname, "wb");
		if ($newf)     
			while(!feof($file)) {     
				fwrite( $newf, fread($file, 1024 * 2 ), 1024 * 2 );
			}     
	}     
	if ($file) {     
		fclose($file);
	}     
	if ($newf) {     
		fclose($newf);     
	}
}

注:

  • 上面代码中使用的是qrserver的API接口,可以自主更换为其它接口;
  • 二维码生成的超时限制为10秒,避免api接口问题不能生成导致页面打不开;
  • 生成的二维码图片用文章的ID命名。

3、在当前主题template/post-single.php文件中,添加代码:

1
{boke8_get_qr($article)}

4、进入网站后台首页,点击[清空缓存并重新编译模板]即可,二维码会在文章的首次访问中自动生成并保存在qrcode/文件夹中。

注:如果页面更换了URL,请到主题的qrcode文件夹中删除二维码图片,重新生成。

靠谱的二维码生成API接口URL:
  • http://pan.baidu.com/share/qrcode?w=150&h=150&url=
  • http://b.bshare.cn/barCode?site=weixin&url=
  • http://s.jiathis.com/qrcode.php?url=
  • http://api.qrserver.com/v1/create-qr-code/?size=200×200&data=

网友留言:

  1. 2016-08-20回复

    自己直接调用本地的js是不是更稳定更好。jquery.qrcode.min.js 这个就可以自动生成

    • 博主板凳
      2016-08-21回复

      不依赖第三方理论上会更好。

发表留言