PHP判断是否关注微信公众号

PHP判断是否关注微信公众号

1 服务号直接请求这个接口
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839

subscribe这个来判断就行了

不过要控制好每日限额
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433744592
获取access_token 2000个 所以这个必须要写缓存
但是网页授权用的 access_token没有限制

PHP根据ip地址获取地理位置

PHP根据ip地址获取地理位置

/*
* 新浪通过IP地址获取当前地理位置(省份)的接口
* 新浪的接口是,返回json
* http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
* http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42
* 参数有两个:format和ip
* 1)IP:不传入ip值时默认为本机ip,也可以指定特定的ip地址;
* 2)format:返回给客户端的数据格式有js和json格式:
*/
/* ps:本地地址没办法转变*/

 $ipContent = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js");
        $jsonData = explode("=", $ipContent);
        $jsonAddress = substr($jsonData[1], 0, -1);
        $ip_info = json_decode($jsonAddress, true);
        print_r($ip_info);
        exit();

css3 transform做动画

css3 transform做动画
第一种用关键帧 这里就不说了 就说第二种方法用 transition属性 ps:jquery anim不支持transform动画 但css还是支持 还有就是不能动态修改关键帧属性 所以采用这个

         <img class="p1_wz1"src="{$yuming}/images/1/p1_wz1.jpg" />
.p1_wz1{
    width: 2.3rem;
    position: absolute;
    left: 41.6%;
    top: 4.2rem;

    -webkit-transition: all 2s ease-in-out;
    -moz-transition: all 2s ease-in-out;
    -o-transition: all 2s ease-in-out;
    transition: all 2s ease-in-out;
}

然后运行下如下代码

$(".p1_wz1").css({"-webkit-transform":"rotate(260deg)"});

马上就旋转了起来 进度条可以参考这个方法来做

php PDO getlastsql写法

php PDO getlastsql写法
有些时候 运行失败需要查看 sql语句 原型有没有语法错误 这个时候就用

下面的函数就是把问号替换成 值 就可以看到原型了

function getrepairsql($sql,$replacement){
    $count=substr_count($sql,'?');
    $pattern = array_fill(0,$count,'/\?/');
    foreach ($replacement as $k=>$v){
        if(!is_int($v)){
            $replacement[$k]="'".$v."'";
        }
    }
    $res = preg_replace($pattern, $replacement, $sql , 1);
    print_r($res);
    exit();
}

PHP str_replace的用法

PHP str_replace的用法

1 替换单个字符

<?php
echo str_replace("world","Shanghai","Hello world!");
?>
//结果
Hello Shanghai!

2 多个字符替换多个字符

$result=str_replace(array(1,2,3), array(3,4,5), "good5 golly2 miss3 molly!");
echo $result;
//结果
good5 golly4 miss5 molly!

3 如果碰到 要匹配的是相同的可以采取如下方法

<?php
$pattern = array('/a/', '/a/', '/a/');
$replacement = array('x', 'y', 'z');
$subject = 'abcadeafg';
$res = preg_replace($pattern, $replacement, $subject , 1);
echo $res; // xbcydezfg

$pattern = array('/\?/', '/\?/', '/\?/');
$replacement = array('x', 'y', 'z');
$subject = '?b?d?bfg';
$res = preg_replace($pattern, $replacement, $subject , 1);
echo $res; // xbydzbfg

?>

phpstorm设置内存限制的方法

phpstorm设置内存限制的方法
有时候用phpstorm写代码 1个文件代码多的话会很卡 那就要修改内存限制

E:\Program Files (x86)\JetBrains\PhpStorm 2016.1\bin\PhpStorm.exe.vmoptions

-server
-Xms512m
-Xmx2048m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

这3个改下就好了
-Xms512m
-Xmx2048m
-XX:MaxPermSize=350m

如果卡 就加入这个找到phpstorm.vmoptions文件
-Dawt.usesystemAAFontSettings=lcd
-Dawt.java2d.opengl=true

jquery 用creatjs preloadjs的方法

jquery 用creatjs preloadjs的方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<img class="p1_bg" />
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
<script src="http://cdn.gbtags.com/PreloadJS/0.4.1/preloadjs.min.js"></script>
<script>
    $(function () {
        setupManifest();
        startPreload();

    })
    //开始预加载
    function startPreload() {
        preload = new createjs.LoadQueue(true);
        //注意加载音频文件需要调用如下代码行
        preload.installPlugin(createjs.Sound);
        preload.on("fileload", handleFileLoad);
        preload.on("progress", handleFileProgress);
        preload.on("complete", loadComplete);
        preload.on("error", loadError);
        preload.loadManifest(manifest);
    }

    //处理单个文件加载
    function handleFileLoad(event) {
        console.log("文件类型");
        console.log(event.item);
         $('.'+event.item.id).attr('src',event.item.src);
    }

    //处理加载错误:大家可以修改成错误的文件地址,可在控制台看到此方法调用
    function loadError(evt) {
        console.log("加载出错!",evt.text);
    }

    //已加载完毕进度
    function handleFileProgress(event) {
       console.log("已加载 " + (preload.progress*100|0) + " %");

    }

    //全度资源加载完毕
    function loadComplete(event) {
        console.log("已加载完毕全部资源");
    }
    //定义相关JSON格式文件列表
    function setupManifest() {
        manifest = [
         {
            src:  "/moban/images/1/p1_bg.jpg",
            id: "p1_bg"
        }

        ];
    }
</script>
</body>
</html>

javascript iframe跳转问题

javascript iframe跳转问题
如果在iframe里面有要点击跳转最外层的连接 要只能用

  <div onclick="parent.location.href='/home/fwef/wef.html'" class="bianjibtn">编辑</div>

用a标签实现 iframe 的链接跳转

<!DOCTYPE html>
<html>
<body>

<iframe src="/example/html/demo_iframe.html" name="iframe_a"></iframe>

<p><a href="http://www.w3school.com.cn" target="iframe_a">W3School.com.cn</a></p>

<p><b>注释:</b>由于链接的目标匹配 iframe 的名称,所以链接会在 iframe 中打开。</p>

</body>
</html>

另外说下 iframe之间session和cookie不能共享 所以只能用url后缀来判断了