PHP學習:QRCode PHP生成二維碼類庫
來源:文萃谷 1.41W
在PHP語言中怎麼生成二維碼類庫呢?下面就和小編一起來看看吧!希望對大家有用,更多內容請關注應屆畢業生網!
使用類庫的方法123 | include ( "Common/" ); $QRCode = new QRCode(); $categoryList = $QRCode ->getUrl(); |
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | <?php
/**
*類功能:將指定URL利用googleapi生成二維碼保存到本地並返回本地訪問url
*author:
*使用方法見:
*/ class QRCode{
private $path ;
private $size ;
public function __construct( $path , $size ){
$this ->path= empty ( $path )?C( 'webPath' ). "/Uploads/QRCode/" : $path ;
$this ->size= empty ( $size )?80: $size ;
}
/**
*檢測存儲目錄是否存在,不存在則創建該目錄
*/
private function makeDir( $path ){
return is_dir ( $path ) or ( $this ->makeDir(dirname( $path )) and @ mkdir ( $path ,0777));
}
/**
*取得二維碼地址
*/
public function getUrl( $url = "" ){
$inPath = '#39; . $this ->size. 'x' . $this ->size. '&cht=qr&chld=L|0&chl=' . $url ;
$savePath = $_SERVER [ 'DOCUMENT_ROOT' ]. $this ->path;
$this ->makeDir( $savePath );
$fileName = substr (md5( "$url" ),8,16). "_" . $this ->size. ".png" ;
$savePath .= $fileName ;
$outUrl = "http://" . $_SERVER [ 'HTTP_HOST' ]. $this ->path. $fileName ;
if ( file_exists ( $savePath )&& filesize ( $savePath )>0){
return $outUrl ;
}
$in = fopen ( $inPath , "rb" );
$out = fopen ( $savePath , "wb" );
while ( $chunk = fread ( $in ,8192))
fwrite( $out , $chunk ,8192);
fclose( $in );
fclose( $out );
if ( filesize ( $savePath )==0){
$this ->getUrl( $url );
} else {
return $outUrl ;
}
}
}
?> |