当前位置: 编程技术>php
本页文章导读:
▪php生成带logo 二维码图像的代码分享 在php中,生成二维码图片,可以借助QRcode类实现。
有关QRcode类的内容,请参考文章:php生成二维码图像的类QRcode
以下介绍在二维码QR图中加LOGO的实现方法,主要分为以下几个步骤:
步骤1,.........
▪php实现文件下载的方法分享 对于普通文件的下载,直接在html中创建下载链接即可,比如:<A href=http://www./ xxx.tar>下载文件</a>。
但在php编程中,对于需要隐藏下载文件地址及其它特殊需求时,则要编写代码来实.........
▪php多线程类的代码分享 如何通过WEB服务器实现PHP的多线程功能呢?
在php编程中,通过WEB服务器实现的多线程只能模仿多线程的一些效果,并不是真正意义上的多线程。
在需要类似多线程的功能时,可以参考下下面.........
[1]php生成带logo 二维码图像的代码分享
来源: 互联网 发布时间: 2013-12-24
在php中,生成二维码图片,可以借助QRcode类实现。
有关QRcode类的内容,请参考文章:php生成二维码图像的类QRcode
以下介绍在二维码QR图中加LOGO的实现方法,主要分为以下几个步骤:
步骤1,生成QR原图;
步骤2,以加水印的方式加上LOGO图片,即可生成个性化的二维码。
<?php /** * 二维码图片 添加logo * edit by www. */ $data = 'http://www.'; $size = '200x200'; $logo = './logo.jpg'; // 中间那logo图 // 通过google api生成未加logo前的QR图,也可以自己使用RQcode类生成 $png = 'http://chart.googleapis.com/chart?chs=' . $size . '&cht=qr&chl=' . urlencode($data) . '&chld=L|1&choe=UTF-8'; $QR = imagecreatefrompng($png); if($logo !== FALSE) { $logo = imagecreatefromstring(file_get_contents($logo)); $QR_width = imagesx($QR); $QR_height = imagesy($QR); $logo_width = imagesx($logo); $logo_height = imagesy($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); imagedestroy($QR); ?>
[2]php实现文件下载的方法分享
来源: 互联网 发布时间: 2013-12-24
对于普通文件的下载,直接在html中创建下载链接即可,比如:<A href=http://www./ xxx.tar>下载文件</a>。
但在php编程中,对于需要隐藏下载文件地址及其它特殊需求时,则要编写代码来实现了。
这里分享一个php文件下载的函数,分段读取文件,然后传送给客户端。
代码如下:
<?php /** * @功能:文件下载 * @编辑:www. */ functiondownload($file_dir,$file_name) //参数说明: //file_dir:文件所在目录 //file_name:文件名 { $file_dir=chop($file_dir);//去掉路径中多余的空格 //得出要下载的文件的路径 if($file_dir!=) { $file_path=$file_dir; if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir))!=/) $file_path.=/; $file_path.=$file_name; } else $file_path=$file_name; //判断要下载的文件是否存在 if(!file_exists($file_path)) { echo对不起,你要下载的文件不存在。; returnfalse; } $file_size=filesize($file_path); header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Accept-Length:$file_size"); header("Content-Disposition:attachment;filename=".$file_name); $fp=fopen($file_path,"r"); $buffer_size=1024; $cur_pos=0; while(!feof($fp)&&$file_size-$cur_pos>$buffer_size) { $buffer=fread($fp,$buffer_size); echo$buffer; $cur_pos+=$buffer_size; } $buffer=fread($fp,$file_size-$cur_pos); echo$buffer; fclose($fp); returntrue; } ?>
[3]php多线程类的代码分享
来源: 互联网 发布时间: 2013-12-24
如何通过WEB服务器实现PHP的多线程功能呢?
在php编程中,通过WEB服务器实现的多线程只能模仿多线程的一些效果,并不是真正意义上的多线程。
在需要类似多线程的功能时,可以参考下下面的这个类。
代码:
<?php /** * @title: PHP多线程类(Thread) * @version: 1.0 * @edit by www. * @published: 2013/7/18 * * PHP多线程应用示例: * require_once 'thread.class.php'; * $thread = new thread(); * $thread->addthread('action_log','a'); * $thread->addthread('action_log','b'); * $thread->addthread('action_log','c'); * $thread->runthread(); * * function action_log($info) { * $log = 'log/' . microtime() . '.log'; * $txt = $info . "\r\n\r\n" . 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n"; * $fp = fopen($log, 'w'); * fwrite($fp, $txt); * fclose($fp); * } */ class thread { var $hooks = array(); var $args = array(); function thread() { } function addthread($func) { $args = array_slice(func_get_args(), 1); $this->hooks[] = $func; $this->args[] = $args; return true; } function runthread() { if(isset($_GET['flag'])) { $flag = intval($_GET['flag']); } if($flag || $flag === 0) { call_user_func_array($this->hooks[$flag], $this->args[$flag]); } else { for($i = 0, $size = count($this->hooks); $i < $size; $i++) { $fp=fsockopen($_SERVER['HTTP_HOST'],$_SERVER['SERVER_PORT']); if($fp) { $out = "GET {$_SERVER['PHP_SELF']}?flag=$i HTTP/1.1\r\n"; $out .= "Host: {$_SERVER['HTTP_HOST']}\r\n"; $out .= "Connection: Close\r\n\r\n"; fputs($fp,$out); fclose($fp); } } } } } ?>
调用示例:
<?php //多线程调用示例 $thread = new thread(); $thread->addthread('func1','info1'); $thread->addthread('func2','info2'); $thread->addthread('func3','info3'); $thread->runthread(); ?>
说明:
addthread是添加线程函数,第一个参数是函数名,之后的参数(可选)为传递给指定函数的参数。
runthread是执行线程的函数。
附,下载地址:php多线程类的源码。
最新技术文章: