mysql select自增变量

mysql select自增变量

SET @rownum =0;
select id,@rownum := @rownum +1 as i from ceshi order by dd desc,id desc;

变量是直接输出在结果集的

SET @rownum =0;

@rownum :=1
这2个个是变量赋值的方式

SET @rownum =0;
select i from
(select id,dd,@rownum := @rownum +1 as i from ceshi order by dd desc,id desc) as cc where id=4;
这个查询用户第几名的

php debug_backtrace方法跟踪代码调用

php debug_backtrace方法跟踪代码调用

function    string  当前的函数名,参见: __FUNCTION__。
line        integer 当前的行号。参见: __LINE__。
file        string  当前的文件名。参见: __FILE__。
class       string  当前 class 的名称。参见 __CLASS__
object      object  当前的 object。
type        string  当前调用的类型。如果是一个方法,会返回 "->"。如果是一个静态方法,会返回 "::"。 如果是一个函数调用,则返回空。
args        array   如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。

index.php

<?php
require 'order.php';

// 获取用户订单资料
$order_id = 1000000;

$oOrder = new Order;
$order_info = $oOrder->get_order($order_id);
?>

order.php

<?php
require 'user.php';

// 订单资料
class Order{

    // 获取订单资料
    function get_order($order_id){

        $user_id = 1001;

        // 获取用户资料
        $oUser = new User;
        $user_info = $oUser->get_user($user_id);

        // 订单资料
        $order_info = array(
            'order_id' => $order_id,
            'order_name' => 'my order',
            'user_info' => $user_info,
        );

        return $order_info;

    }

}
?>

user.php

<?php
require 'message.php';

// 用户资料
class User{

    // 获取用户资料
    function get_user($user_id){

        // 获取用户讯息
        $oMessage = new Message;
        $user_message = $oMessage->get_message($user_id);

        $user_info = array(
                'user_id' => $user_id,
                'name' => 'fdipzone',
                'message' => $user_message
        );

        return $user_info;

    }

}
?>

message.php

<?php
// 用户讯息
class Message{

    // 获取用户讯息
    function get_message($user_id){

        $message = array(
            array('id'=>1, 'title'=>'message1'),
            array('id'=>2, 'title'=>'message2'),
        );

        // 加入跟踪调试
        $backtrace = debug_backtrace();
        var_dump($backtrace);

        return $message;

    }

}
?>
/message.php:15:
array (size=3)
  0 => 
    array (size=7)
      'file' => string '/user.php' (length=9)
      'line' => int 12
      'function' => string 'get_message' (length=11)
      'class' => string 'Message' (length=7)
      'object' => 
        object(Message)[3]
      'type' => string '->' (length=2)
      'args' => 
        array (size=1)
          0 => int 1001
  1 => 
    array (size=7)
      'file' => string '/order.php' (length=10)
      'line' => int 14
      'function' => string 'get_user' (length=8)
      'class' => string 'User' (length=4)
      'object' => 
        object(User)[2]
      'type' => string '->' (length=2)
      'args' => 
        array (size=1)
          0 => int 1001
  2 => 
    array (size=7)
      'file' => string '/index.php' (length=9)
      'line' => int 8
      'function' => string 'get_order' (length=9)
      'class' => string 'Order' (length=5)
      'object' => 
        object(Order)[1]
      'type' => string '->' (length=2)
      'args' => 
        array (size=1)
          0 => int 1000000

可以看到调用过程是

1.index.php 
line 8 
class Order 
function get_order 
args int 1000000

2.order.php 
line 14 
class User 
function get_user 
args int 1001

3.user.php 
line 12 
class Message 
function get_message 
args int 1001

这个方法主要看 某个函数是调用方式是怎么样的 来解决问题的

jquery 数字滚动方法

jquery 数字滚动方法
用的是countUp.js这个插件

target = 目标元素的 ID;
startVal = 开始值;
endVal = 结束值;
decimals = 小数位数,默认值是0;
duration = 动画延迟秒数,默认值是2;

1先初始化

   var options = {  
          useEasing: true,
          useGrouping: false,
          separator: ',',
          decimal: '.',
    };
    var demo = new CountUp('few', 0, 0, 0, 0.5, options);
    if (!demo.error) {  
        demo.start();
    } else {  
        console.error(demo.error);
    }

2更新

  demo.update(6000);

详细参数看http://inorganik.github.io/countUp.js/

php imagick svg转成jpg

php imagick svg转成jpg

  public function svgtojpg()
    {
        $image    = '<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="400" height="300" viewBox="0,0,40,30" style="border:1px solid #cd0000;" version="1.1"
xmlns="http://www.w3.org/2000/svg">
  <rect x="0" y="0" width="40" height="30" fill="#cd0000"/>

</svg>
';
        $filename = 'ef.jpg';
        /*  $image    = stripslashes($_POST['json']);
        $filename = $_POST['filename'];*/
        $unique = time();
        $im     = new \Imagick();
        $im->readImageBlob($image);
        $res     = $im->getImageResolution();
        $x_ratio = $res['x'] / $im->getImageWidth();
        $y_ratio = $res['y'] / $im->getImageHeight();
        $im->removeImage();
        $im->setResolution($width_in_pixels * $x_ratio, $height_in_pixels * $y_ratio);
        $im->readImageBlob($image);
        $im->setImageFormat("jpeg");
        $im->writeImage(__DIR__ . '/../../../Public/moban/images/1/humourised_'. $filename);
        $im->clear();
        $im->destroy();
    }

svg自适应写法

svg自适应写法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <div style="width:30%; height:3.6rem;">
     <svg width="100%" height="100%" viewBox="0,0,40,30" style="border:1px solid #cd0000;">
         <rect x="0" y="0" width="40" height="30" fill="#cd0000"/>
    </svg>
    </div>
    <script src="/moban/js/jquery.min.js"></script>
    <script type="text/javascript">
   (function(doc, win) {
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        /*如果屏幕尺寸发生了变化就会立即更新*/
        recalc = function() {
            /*     var clientWidth = docEl.clientWidth;*/
            var clientWidth = parseInt($('body').width());
            if (!clientWidth) return;
            docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
        };
    if (!doc.addEventListener) return;
    /*如果窗口改变了大小 手机旋转了都会重新修改font-size属性*/
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);    	
    $(function() {
        $('.dds').on('click', function() {
            $(this).attr('fill', 'green');
        })
    })
 

    </script>
</body>

</html>

html5 svg实现不规则形状图片触发事件

html5 svg实现不规则形状图片触发事件

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
   <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"  class="dds" />
</svg>
<script src="/moban/js/jquery.min.js"></script>
<script type="text/javascript">
    $(function(){
        $('.dds').on('click',function(){
            $(this).attr('fill','green');
        })
    })
</script>
</body>

</html>

javascript获取上传图片的大小

javascript获取上传图片的大小

<input id="file" type="file">  
<input id="Button1" type="button" value="button" onclick="check()">  
<script>  
window.check=function(){  
var input = document.getElementById("file");  
if(input.files){  
                //读取图片数据  
  var f = input.files[0];  
  var reader = new FileReader();  
  reader.onload = function (e) {  
      var data = e.target.result;  
      //加载图片获取图片真实宽度和高度  
      var image = new Image();  
      image.onload=function(){  
          var width = image.width;  
          var height = image.height;  
          alert(width+'======'+height+"====="+f.size);  
      };  
      image.src= data;  
  };  
      reader.readAsDataURL(f);  
  }else{  
      var image = new Image();   
      image.onload =function(){  
          var width = image.width;  
          var height = image.height;  
          var fileSize = image.fileSize;  
          alert(width+'======'+height+"====="+fileSize);  
      }  
      image.src = input.value;  
  }  
}  
</script>  

win7 安装php插件imagick

 

 

win7 安装php插件imagick

 

安装步骤:

步骤一:先安装好扩展包

之所以先安装扩展是因为扩展的版本要与软件版本对应,而扩展版本出来的速度比软件版本要慢得多,所以总是没法支持最新版本的软件,因此最好是根据自己安装的扩展来选择安装的ImageMagick软件版本。

首先Imagic的php扩展包下载地址:http://pecl.php.net/package/imagick

首先根据你自己的php版本选择,如果不知道自己的版本可以查看phpinfo,下面我截图自己的给个示范:

下面红框标识的地方都是要注意的,最上面是php版本,我的是5.5.30版本的,另外是服务器环境是x86的,也就是32位的,如果这里是64就是64位的,要注意。

再接着就是看php的安全线程情况:disabled是关闭状态,enable是开启状态,我的安全线程是关闭的,这里一定要留意

下面来看上面的下载页面是什么情况:这里有最新的各个版本imagick的php扩展,也写明了要求的版本,这里支持的ImageMagick版本是6.5.3-6.10的,并且php版本要高于5.4。

如果你的php版本低于这个,那么可能你需要找更低的扩展版本了,而且软件的版本也随之更低,这篇博文与你的安装情况应该是有出入的,顶多做个参考,例如低版本的ImageMagick是需要手动进行系统变量path配置的,高版本的都自动安装时勾选了自动配置了。

好了下面进入上面给的扩展下载页面会看到如下图片的显示:

红框里是我选择的版本,基本上这个是最新的且是稳定版本所以还是很好的选择,当然也可以根据自己的情况选择其他的版本,但注意选择stable稳定版本比较好,点击蓝色windows标识的DDL进入windows的版本选项,下面有截图。

根据上面我们看phpinfo得到的各个参数,这里选择php5.5版本的,并且是Non Thread Safe版本,同时32位,因此应该选择红框里的版本下载。

下载完毕后我们来看看里面有些什么东西:

用红框标识的都是在php安装imagick扩展所需要用到的:

1)最下面的php_imagick.dll放入php安装文件夹的ext扩展文件夹内

2)上面的dll文件直接放入php安装文件夹,如果是phpstudy多版本的php话,放入自

ps:这个地方同样dll还要放到apache里的bin目录里面 切记

己使用的版本对应的文件夹,例如php55n就是指php5.5以上但不高于5.6的版本

再来就是改php的配置文件,打开php.ini文件,像下图那样加上extension=php_imagick.dll的扩展配置。

完成这些配置后,重启电脑和服务器再打开phpinfo就可以看到imagick的扩展了,如果phpinfo里没有imagick则标识扩展表示没有安装成功,错误的可能性是服务器参数和php参数与imagick扩展参数不一致导致,因此检查上述的版本是否对应一致。

然后看phpinfo里面的imagick

查看这个Imagick compiled with ImageMagick version这个参数 ImageMagick 6.8.9-1 Q16 x86 2014-05-08 要安装这个 版本一定要对应 装好以后

 

需要 新建一个系统环境变量名为MAGICK_HOME,值为E:\你的imagick路径\modules\coders, 这步主要用来定位imagemagick的module,很重要。( 否则支持的图片格式数量默认为0 ImageMagick number of supported formats:  => 0 )

 

然后重启(必须重启)

然后再看PHPinfo ImageMagick supported formats 就会出现信息了 就是安装完成了 可以用了

如果没有信息 那就没办法了

 

这个是所有imagick历史版本 http://ftp.icm.edu.pl/packages/ImageMagick/binaries/