php生成二维码_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > php生成二维码

php生成二维码

 2012/10/15 10:39:20  kudz  程序员俱乐部  我要评论(0)
  • 摘要:<?phpclassqrcode{private$data;//creatingtextqrcodepublicfunctiontext($text){$this->data=$text;}//creatingcodewithlinkmtadatapublicfunctionlink($url){if(preg_match('/^http:\/\//',$url)||preg_match('/^https:\/\//',$url)){$this->data=$url;
  • 标签:PHP 二维码
<?php

class qrcode {
    private $data;    //creating text qr code  
    public function text($text) {
        $this->data = $text;
    }

//creating code with link mtadata  
    public function link($url) {
        if (preg_match('/^http:\/\//', $url) || preg_match('/^https:\/\//', $url)) {
            $this->data = $url;
        } else {
            $this->data = "<a href=\"http://".$url."\">http://".$url."</a>";   
        }
    }

//creating code with bookmark metadata 
    public function bookmark($title, $url) {
        $this->data = "MEBKM:TITLE:" . $title . ";URL:" . $url . ";;";
    }

//creating code with email address metadata
    public function email_address($email) {
        $this->data = "<a href='mailto:'".$email.">MAILTO:".$email."</a>";
    }

    //creating code with email metadata
    public function email($email, $subject, $message) {
        $this->data = "MATMSG:TO:" . $email . ";SUB:" . $subject . ";BODY:" . $message . ";;";
    }

    //creating code with phone
    public function phone_number($phone) {
        $this->data = "TEL:" . $phone;
    }

    //creating code with sms metadata  
    public function sms($phone, $text) {
        $this->data = "SMSTO:" . $phone . ":" . $text;
    }

    //creating code with mms metadata  
    public function mms($phone, $text) {
        $this->data = "MMSTO:" . $phone . ":" . $text;
    }

    //creating code with mecard metadata 
    public function contact_info($name, $address, $phone, $email) {
        $this->data = "MECARD:N:" . $name . ";ADR:" . $address . ";TEL:" . $phone . ";EMAIL:" . $email . ";;";
    }

    //creating code with geo location metadata  
    public function geo($lat, $lon, $height) {
        $this->data = "GEO:" . $lat . ", " . $lon . ", " . $height;
    }

    //creating code with wifi configuration metadata 
    public function wifi($type, $ssid, $pass) {
        $this->data = "WIFI:T:" . $type . ";S" . $ssid . ";" . $pass . ";;";
    }

    //creating code with i-appli activating meta data
    public function iappli($adf, $cmd, $param) {
        $cur = current($param);
        $next = next($param);
        $param_str = "";
        foreach ($cur as $key => $val) {
            $param_str .= "PARAM:" . $val . ", " . $next[$key] . ";";
        }
        $this->data = "LAPL:ADFURL:" . $adf . ";CMD:" . $cmd . ";" . $param_str . ";";
    }

    //creating code with gif or jpg image, or smf, MFi or ToruCa files as content 
    public function content($type, $size, $content) {
        $this->data = "CNTS:TYPE:" . $type . ";LNG:" . $size . ";BODY:" . $content . ";;";
    }

    //getting image 
    public function get_image($size = 150, $EC_level = 'L', $margin = '0') {
        $ch = curl_init();
        $this->data = urlencode($this->data);
        curl_setopt($ch, CURLOPT_URL, 'http://chart.apis.google.com/chart');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, 'chs=' . $size . 'x' . $size . '&cht=qr&chld=' . $EC_level . '|' . $margin . '&chl=' . $this->data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        $response = curl_exec($ch);
        curl_close($ch);
        return $response;
    }

    //getting link for image
    public function get_link($size = 150, $EC_level = 'L', $margin = '0') {
        $this->data = urlencode($this->data);
        return 'http://chart.apis.google.com/chart?chs=' . $size . 'x' . $size . '&cht=qr&chld=' . $EC_level . '|' . $margin . '&chl=' . $this->data;
    }

    //forsing image download 
    public function download_image($file) {
        header('Content-Description: File Transfer');
        header('Content-Type: image/png');
        header('Content-Disposition: attachment; filename=QRcode.png');
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        echo $file;
    }

}

?>

?实例运用

<?php
include("qrcode.php");
$qr = new qrcode();
//bookmark
$title = "antdz";
$url = "http://antdz.iteye.com/";
$qr->bookmark($title,$url);
//获取二维码图片URL
echo "<img src='".$qr->get_link()."'>";

//here is the way to output image 

//header("Content-type:image/png");
//echo $qr->get_image();
//and here is the way to force image download
//$file = $qr->get_image();
//$qr->download_image($file)
?>
?
发表评论
用户名: 匿名