[置顶] 修改一些PHP工具

来源:互联网 发布:淘宝旺铺装修模板代码 编辑:程序博客网 时间:2024/05/16 04:34

原来的代码 在非框架下是木有问题的,但是用在框架下就报错,mb的,终于修改好了... 

 

具体使用见附件,可以自己封装下 呵呵

<?phpnamespace yii\helpers;use common\lib\QRCode2;/** * 二维码图像生成 */class QrcodeHelper {/** * 输出生成的二维码图片 *  * @param  string  $url 对应的url地址 * @param  integer $size 图像大小 * @param  integer $margin 边距 * * @return void 包含二维码图像的输出对象 */static function generateImage($url,$size=6,$margin=1){        static $logo = __DIR__ . '/qrlogo.png';        if (is_readable($logo) )        {            return self::generateImageWithLogo($url, $logo,$size,$margin);        }                $qr = QRCode2::getMinimumQRCode($url, QRCode2::$QR_ERROR_CORRECT_LEVEL_H);$im = $qr->createImage($size, $margin);        header("Content-type: image/gif");imagegif($im);imagedestroy($im);}        /** * 输出生成的二维码图片 *  * @param  string  $url 对应的url地址 * @param  file  $logo 对应的url地址 * @param  integer $size 图像大小 * @param  integer $margin 边距 * * @return void 包含二维码图像的输出对象 */    static function generateImageWithLogo($url, $logo,$size=6,$margin=1)    {        if (!is_readable($logo) )        {            return self::generateImage($url, $size, $margin);        }                $qr = QRCode2::getMinimumQRCode($url, QRCode2::$QR_ERROR_CORRECT_LEVEL_M);$im = $qr->createImage($size, $margin);                $im_width = imagesx($im);//二维码图片宽度         $im_height = imagesy($im);//二维码图片高度                $logo = imagecreatefromstring(file_get_contents($logo));                $logo_width = imagesx($logo);//logo图片宽度         $logo_height = imagesy($logo);//logo图片高度                 $logo_im_width = $im_width / 3;         $scale = $logo_width/$logo_im_width;         $logo_im_height = $logo_height/$scale;         $from_width = ($im_width - $logo_im_width) / 2;         //重新组合图片并调整大小         imagecopyresampled($im, $logo, $from_width, $from_width, 0, 0, $logo_im_width,         $logo_im_height, $logo_width, $logo_height);                 header("Content-type: image/png");        imagepng($im);        imagedestroy($im);    }}

 

 

/** * 二维码图像生成 */class Helper_Qrcode {/** * 生成二维码图片 *  * @param  string  $url 对应的url地址 * @param  integer $size 图像大小 * @param  integer $margin 边距 * * @return QView_Output 包含二维码图像的输出对象 */static function generateImage($url,$size=6,$margin=1){$filename = 'qkenrcode-' . mt_rand();ob_start();$mime = image_type_to_mime_type(IMAGETYPE_GIF);$qr = QRCode::getMinimumQRCode($url, QR_ERROR_CORRECT_LEVEL_H);$im = $qr->createImage($size, $margin);imagegif($im);imagedestroy($im);unset($im);$output = new QView_Output($filename, $mime, ob_get_clean());$output            ->contentDisposition('inline')            ->enableClientCache(false);return $output;}}

 

/** * 地理位置相关辅助类 * */class Helper_Geo {private static function trueIp($ip){return filter_var($ip,FILTER_VALIDATE_IP,FILTER_FLAG_IPV4|FILTER_FLAG_IPV6|FILTER_FLAG_NO_RES_RANGE|FILTER_FLAG_NO_PRIV_RANGE);}/** * 根据 ip 地址计算对应的 地标信息  *  * @param   $ip IP 地址 *  * @return array */static function getData($ip){$ip = self::trueIp($ip);if ( $ip ){Unirest::verifyPeer(false);Unirest::timeout(2);$response = Unirest::get('http://ip.taobao.com/service/getIpInfo.php', array( "Accept" => "application/json" ),array( "ip" => $ip ));if ( is_array($response->body) && $response->body['code'] === 0 && !empty($response->body['data']) ){return $response->body['data'];}     }return false;}}

 

 

  • php.zip (16 KB)
  • 描述: qrcode
  • 下载次数: 2
  • unirest.nonamespace.zip (3.5 KB)
  • 下载次数: 1
  • qrcode2.php.zip (7.1 KB)
  • 描述: 替换了全局变量
  • 下载次数: 2
0 0
原创粉丝点击