使用jQuery实现canvas中的getContext("2d")方法

使用canvas中,用原生的JS代码没有任何问题,但是在用jQuery来实现的时候,会遇到没有getContext()方法。

原生代码如下:

<canvas id="myCanvas"></canvas>

    <script type="text/javascript">

    //获取图形容器
    var canvas=document.getElementById('myCanvas');

    //渲染
    var ctx=canvas.getContext('2d');

    //设置颜色
    ctx.fillStyle='#FF0000';

    //输出一个位于坐标(0,0)位置的,宽为80,高为100的矩形
    ctx.fillRect(0,0,80,100);

    </script>

可是使用jQuery的时候就出现问题了,当使用$('#myCanvas')来获取的时候,

var ctx=canvas.getContext('2d');

这句会提示一个不存在的函数getContext();

原因是因为getContext是DOM对象方法,也就是js原生方法,不能用jquery对象直接调用;

解决办法如下,将

var ctx=canvas.getContext('2d');

改为

var ctx=canvas[0].getContext('2d');

就可以正常使用了。

PHP批量删除小于10K的文件实例

<?php
function get_allfiles($path,&$files) {  
    if(is_dir($path)){  
        $dp = dir($path);  
        while ($file = $dp ->read()){  
            if($file !="." && $file !=".."){  
                get_allfiles($path."/".$file, $files);  
            }  
        }  
        $dp ->close();  
    }  
    if(is_file($path)){  
        $files[] =  $path;  
    }  
}  
     
function get_filenamesbydir($dir){  
    $files =  array();  
    get_allfiles($dir,$files);  
    return $files;  
}  
     
$filenames = get_filenamesbydir("./hotels/hotelimg");  
//删除指定文件
foreach ($filenames as $value) {  
    $filesize=abs(filesize($value));
    if($filesize<10240){    //小于10K
        echo $value."<br />";//输出被删除的文件名
        unlink($value);
    }
}  

微信开发之获取用户详细信息

    public function wxlogin($code = null)
    {
        //判断是否微信浏览器打开,并判断是否登录
        if ((strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')) !== false && empty($_SESSION['openid']) || empty($_SESSION['userid']) || empty($_SESSION['username'])) {
       //引导用户进入授权页面同意授权,获取code
            if ($code !== null) {
                //获取openID
                $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?';
                $params = array(
                    'appid'     => '',
                    'secret'    => '',
                    'code'      => $code,
                    'grant_type'=> 'authorization_code',
                );
                $openId = json_decode(file_get_contents($url . http_build_query($params)), true);
                if(!isset($openId['openid'])) $openId['openid'] = -1;
                //设置session
                $_SESSION['openid']  = $openId['openid'];
                //判断数据库是否存在该用户信息
                $url = 'http://'.SITE_DOMAIN.'user/isuser?';
                $params = array(
                    'openid'     => $openId['openid'],
                    'token'      => md5('cunzaiganit.com'),
                );
                $user = json_decode(file_get_contents($url . http_build_query($params)), true);
                //如果数据库没有该用户信息
                if($user['result']){
                    //获取用户信息
                    $url = 'https://api.weixin.qq.com/sns/userinfo?';
                    $params = array(
                        'access_token' => $openId['access_token'],
                        'openid' => $openId['openid'],
                        'lang' => 'zh_CN'
                    );
                    $info = json_decode(file_get_contents($url . http_build_query($params)), true);

                    //将信息存数据库
                    $url = 'http://'.SITE_DOMAIN.'user/adduser?';
                    $params = array(
                        'openid'     => $info['openid'],
                        'name'     => $info['nickname'],
                        'login_name'     => $info['nickname'],
                        'sex'     => $info['sex'],
                        'province'     => $info['province'],
                        'city'     => $info['city'],
                        'country'     => $info['country'],
                        'headlink'     => $info['headimgurl'],
                    );
                    $rows = json_decode(file_get_contents($url . http_build_query($params)),true);
                    $_SESSION['userid']  = $rows['id'];
                    $_SESSION['username']  = $rows['name'];
                } else {
                    //如果有该用户
                    $_SESSION['userid']  = $user['id'];
                    $_SESSION['username']  = $user['name'];
                }
            } else {
                $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?';

                $params = array(
                    'appid'         => '',
                    'redirect_uri'  => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
                    'response_type' => 'code',
                    'scope'         => 'snsapi_userinfo',
                    'state'         => md5('baidu.com') . '#wechat_redirect'
                );
                die(header('Location:'.$url . http_build_query($params)));
            }
        }
    }

微信开发之模板消息实例


public function test()
{
        //获取token
        $wxtoken = $this->jssdks->getToken();
        //拼接URL
        $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$wxtoken;
        //发送需要发送的模板信息内容
        $params = json_encode(array(
            'touser' => "openid",//接收者的OpenId
            'template_id' => '',//模板ID,可去微信公众号后台查看
            "url" => "http://".STYLE_DOMAIN,//用户接收到信息,点击后挑战的地址
            'topcolor' => "#FF0000",
            'data' => array(
                //以下内容可参考微信公众号后台填写
                'first' => array(
                    "value" => "业务到期提示",
                    "color" => "#173177"
                ),
                'type' => array(
                    "value" => "到期提示",
                    "color" => "#173177"
                ),
                'date' => array(
                    "value" => date('Y-m-d'),
                    "color" => "#173177"
                ),
                'remark' => array(
                    "value" => '本业务将在月底自动取消。如需续用,请您在到期前点击链接,根据指引办理业务。感谢您的体验!',
                    "color" => "#173177"
                ),
            )
            )
        );
        //调用封装好的Curl发送数据。
        $result = $this->getapi->get_json_decode($params,$url);
 }

MYSQL直接获取本月所有数据的SQL语句

原本时间存储于数据库都使用的时间戳格式,最近和一个JAVA对接,他们数据库不是时间戳格式,而是:2016-12-5 11:16:11这种形式储存,所以感觉挺繁琐。

需要查询一下本月的数据,百度的方法:

select count(ID) from tb where month(时间字段) = month(getdate());

可是这个SQL语句,需要用到MYSQL的ROOT权限,我出于安全考虑,一般都不动用ROOT权限的,所以运行之后会报错:

1370 - execute command denied to user 'weixin'@'%' for routine 'datatest.getdate'

最后给出MYSQL直接获取本月所有数据的sql语句:

select name from 表名 where date_format(时间字段名,'%Y-%m')=date_format(now(),'%Y-%m');