PHP微信柏拉图性格标签生成器源码

2当家的 发布于 2017/02/24 09:41
阅读 402
收藏 2


演示参考:http://www.erdangjiade.com/php/1176.html
效果图片:
前台页面:

  1. <!DOCTYPE html>
  2. <html><head>
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;">
  7. <meta name="format-detection" content="telephone=no">
  8. <title>我的性格标签</title>
  9. <link rel="stylesheet" type="text/css" href="assets/4css.css">
  10. <script type="text/javascript" src="assets/jquery-1.js"></script>
  11. <script type="text/javascript" src="assets/hs_mobiscroll_date.js"></script>
  12. <script type="text/javascript" src="assets/hs_mobiscroll.js"></script>
  13. </head>
  14. <body onload="init()">
  15. <div class="background">
  16.     <div class="name">
  17.         <span class="title">姓名:</span>
  18.         <span class="write-name">
  19.             <input placeholder="请输入姓名(最多4个汉字)" class="user-name" maxlength="4" onblur="checkName()" type="text">
  20.         </span>
  21.     </div>
  22.     <div class="birthday">
  23.         <span class="title">生日:</span>
  24.         <span class="chose-birthday">
  25.             <input readonly="readonly" placeholder="请选择出生日期(阳历生日)" class="user-birthday" id="user_birthday" type="text">
  26.         </span>
  27.     </div>
  28. </div>
  29. <div style="width: 1152px; height: 167.767px; position: absolute; z-index: 10; top: 77%; left: 10%;" class="button" onclick="makePicture()"></div>
  30.  
  31. <div class="transparent-float"></div>
  32. <div class="float">
  33.     <div style="width: 1353.6px; height: 1748.4px; position: relative; margin-top: 2%; margin-left: 3%;" class="picture-box">
  34.         <span class="close" onclick="closeFloat()"></span>
  35.         <span style="width: 1299.46px; height: 1537.69px; position: absolute; z-index: 1; bottom: 2%; left: 2%;" class="picture">
  36.             <img class="mypicture" src="">
  37.         </span>
  38.         <span style="width: 1299.46px; height: 1537.69px; position: absolute; z-index: 2; top: 2%; left: 2%;" class="scan"></span>
  39.     </div>
  40.     <div style="width: 1353.6px; height: 205.512px; position: relative; margin-top: 5%; left: 3%;" class="text"></div>
  41. </div>
  42.  
  43. <script type="text/javascript">
  44. $(function () {
  45.     var currYear = new Date().getFullYear();    
  46.  
  47.     var opt={};
  48.     opt.date = {preset : 'date'};
  49.     opt.default = {
  50.         theme: 'android-ics light', 
  51.         display: 'bottom', 
  52.         mode: 'scroller',
  53.         dateFormat: 'yyyy-mm-dd',
  54.         lang: 'zh',
  55.         showNow: false,
  56.         startYear: currYear - 100,
  57.         endYear: currYear
  58.     };
  59.  
  60.     $("#user_birthday").mobiscroll($.extend(opt['date'], opt['default']));
  61. });
  62. </script>
  63. <script type="text/javascript" src="assets/4js.js"></script>
  64. </body></html>

复制代码

数据处理:

  1. <?php
  2. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  3.     $weixin = '二当家的素材网';
  4.     extract($_POST);
  5.  
  6.     $month = intval(substr($birthday,5,2));
  7.     $day = intval(substr($birthday,8,2));
  8.     
  9.     if (empty($name) || $month < 1 || $month > 12 || $day < 1 || $day > 31){
  10.         echo '-1';
  11.         exit();
  12.     }
  13.     
  14.     $signs = array(
  15.         array('20'=>2),
  16.         array('19'=>3),
  17.         array('21'=>4),
  18.         array('20'=>5),
  19.         array('21'=>6),
  20.         array('22'=>7),
  21.         array('23'=>8),
  22.         array('23'=>9),
  23.         array('23'=>10),
  24.         array('24'=>11),
  25.         array('22'=>12),
  26.         array('22'=>1)
  27.     );
  28.     list($start, $num) = each($signs[$month-1]);
  29.     if ($day < $start){
  30.         list($start, $num) = each($signs[($month-2 < 0) ? 11 : $month-2]);
  31.     }
  32.  
  33.     $basePath = dirname(__FILE__).'/';
  34.     $font1 = $basePath.'assets/font1.ttf';
  35.     $font2 = $basePath.'assets/font2.ttf';
  36.     $font3 = $basePath.'assets/font3.ttf';
  37.     $source = $basePath.'assets/'.$num.'.jpg';
  38.     $water = $basePath.'assets/footer.jpg';
  39.     $savepath = 'images/'.date('Ym');
  40.     $savename = md5($month.$day.$name).'.jpg';
  41.     $savefile = $savepath .'/'. $savename;
  42.     
  43.     if(!is_dir($basePath.$savepath)){
  44.         mkdir($basePath.$savepath,0777,true);
  45.     }
  46.     
  47.     if(file_exists($savefile)){
  48.         echo $savefile;
  49.         exit();
  50.     }
  51.     
  52.     if (!file_exists($source) || !file_exists($water)) {
  53.         echo '-1';
  54.         exit();
  55.     }
  56.  
  57.     $source = imagecreatefromjpeg($source);
  58.     if (!$source) {
  59.         echo '-1';
  60.         exit();
  61.     }
  62.     $water = imagecreatefromjpeg($water);
  63.     if (!$water) {
  64.         echo '-1';
  65.         exit();
  66.     }
  67.     switch ($num) {
  68.         case 9:
  69.             $x=45;
  70.             $y=238;
  71.         break;
  72.         default:
  73.             $x=120;
  74.             $y=185;
  75.     }
  76.     imagefttext($source, 18, 0, $x, $y, imagecolorallocate($source, 175,152,85), $font1, $month.'月'.$day.'日');
  77.     $length = mb_strlen($name,'utf-8');
  78.     $margin = 120;
  79.     $left = 20;
  80.     if($length <= 4){
  81.         $margin = 140;
  82.         $left = 40;
  83.     }
  84.     for($i = 0; $i < $length; $i++){
  85.         imagefttext($source, 60, 0, $margin * $i + $left, 335, imagecolorallocate($source, 255,255,255), $font2, mb_substr($name,$i,1,'utf-8'));
  86.     }
  87.     imagecopymerge($source, $water, 40, 590, 0, 0, 110, 110, 100);
  88.     imagefttext($source, 17, 0, 175, 630, imagecolorallocate($source, 180,180,180), $font3, '长安识别二维码,生成您的性格签名');
  89.     imagefttext($source, 17, 0, 175, 670, imagecolorallocate($source, 180,180,180), $font3, '或关注“'.$weixin.'”公众号生成');
  90.     imagejpeg($source, $basePath.$savefile);
  91.     imagedestroy($source);
  92.     imagedestroy($water);
  93.     echo $savefile;
  94. }else{
  95.     echo '-1';
  96. }

复制代码

演示参考:http://www.erdangjiade.com/php/1176.html

加载中
返回顶部
顶部