laravel
laravel 1
1f 32F  2019-05-30 10:13:36
 #linux创建用户
  useradd xxx
  passwd xxx  ##设置密码
  #配置国内镜像
  composer config -g repo.packagist composer https://packagist.phpcomposer.com 

npm
node 1
1f 32F  2019-05-29 11:51:43
 #nodejs下载
 https://nodejs.org/en/
 #已自动配置PATH,npm -v 查看版本
 #更换镜像源
 npm config set registry http://registry.npm.taobao.org
 后续... 

mysql事务
mysql 1
1f 32F  2019-05-14 09:42:12
 #举例描述: https://blog.csdn.net/gotobat/article/details/80351224
 #事务特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)
 #a.原子性: 全部成功commit  || 全部失败rollback
 #b.一致性: 规则一致,如name唯一索引
 #c.隔离性: 解决丢失更新、脏读、不可重复读、幻读
 #隔离级别 Read Uncommitted -解决 丢失更新
                 Read Committed     -解决 丢失更新+脏读
                 Repeatable Read    -解决 丢失更新+脏读+不可重复读 (Innodb下也解决了幻读,原理上文已说明)
                 Serializable            -解决 丢失更新+脏读+不可重复读+幻读
 #隔离等级从上至下,性能越差,安全性越优
 #d.持久性: 事务提交则永久保存数据库中,持久化到硬盘中,硬盘在commit前已有修改或新增数据以此持久化 

有趣的代码
php 1
1f 32F  2019-04-02 09:52:09
 $a = array(1,2,3);
 foreach ($a as &$v){  
 }
 foreach ($a as $v){
     $v = 4;
 }
 print_r($a);
  
 //下面为输出 
Array
 (
    [0] => 1
    [1] => 2
    [2] => 4
 ) 

textarea
textarea 1
1f 32F  2019-03-30 11:50:58
 #textarea获取值
 $("textarea#xx").val();    //text()只能获取初始值,val()可以获取动态值 

bootstrap
bootstrap 3
1f 32F  2019-03-30 10:37:17
 #头像圆形  img-circle 
2f 32F  2019-05-17 13:54:44
 #输入标签化
 <script src="bootstrap-tagsinput.js"></script>
 <link rel="stylesheet" href="bootstrap-tagsinput.css">
 
 <input type="text" class="form-control" value="" id="myid" name="myid" data-role="tagsInput">
 <script>
 $("#myid").tagsinput();
 </script> 
3f 32F  2019-05-17 18:28:30

php常用片段
php 5
1f 32F  2019-02-25 14:38:34
 //通过经纬度计算出距离
 function getDistance($lat1, $lng1, $lat2, $lng2)
 {
    $earthRadius = 6367000; //地球半径

    /**
     *将这些度数转换为弧度,代入公式
     * pi()返回圆周率近似值
     */
    $lat1 = ($lat1 * pi() ) / 180;
    $lng1 = ($lng1 * pi() ) / 180;
    $lat2 = ($lat2 * pi() ) / 180;
    $lng2 = ($lng2 * pi() ) / 180;
    $calcLongitude = $lng2 - $lng1;
    $calcLatitude = $lat2 - $lat1;
    $stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);
    $stepTwo = 2 * asin(min(1, sqrt($stepOne)));
    $calculatedDistance = $earthRadius * $stepTwo;
    return round($calculatedDistance);
 } 
2f 32F  2019-04-24 10:00:10
 #随机字符串
 function generateRandomString($length = 10) {
        $characters = 
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
           $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }
        return $randomString;
   } 
3f 32F  2019-04-25 11:59:39
 #rbac系统等 可以使用 tree树形控件
 #参考网站:https://element.eleme.cn/#/zh-CN/component/tree 
4f 32F  2019-04-25 14:38:37
 #获取字符首字母
  function getfirstchar($s0){
    $fchar = ord($s0{0});
    if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0});
    $s1 = iconv("UTF-8","gb2312", $s0);
    $s2 = iconv("gb2312","UTF-8", $s1);
    if($s2 == $s0){$s = $s1;}else{$s = $s0;}
    $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
    if($asc >= -20319 and $asc <= -20284) return "A";
    if($asc >= -20283 and $asc <= -19776) return "B";
    if($asc >= -19775 and $asc <= -19219) return "C";
    if($asc >= -19218 and $asc <= -18711) return "D";
    if($asc >= -18710 and $asc <= -18527) return "E";
    if($asc >= -18526 and $asc <= -18240) return "F";
    if($asc >= -18239 and $asc <= -17923) return "G";
    if($asc >= -17922 and $asc <= -17418) return "H";
    if($asc >= -17922 and $asc <= -17418) return "I";
    if($asc >= -17417 and $asc <= -16475) return "J";
    if($asc >= -16474 and $asc <= -16213) return "K";
    if($asc >= -16212 and $asc <= -15641) return "L";
    if($asc >= -15640 and $asc <= -15166) return "M";
    if($asc >= -15165 and $asc <= -14923) return "N";
    if($asc >= -14922 and $asc <= -14915) return "O";
    if($asc >= -14914 and $asc <= -14631) return "P";
    if($asc >= -14630 and $asc <= -14150) return "Q";
    if($asc >= -14149 and $asc <= -14091) return "R";
    if($asc >= -14090 and $asc <= -13319) return "S";
    if($asc >= -13318 and $asc <= -12839) return "T";
    if($asc >= -12838 and $asc <= -12557) return "W";
    if($asc >= -12556 and $asc <= -11848) return "X";
    if($asc >= -11847 and $asc <= -11056) return "Y";
    if($asc >= -11055 and $asc <= -10247) return "Z";
    return NULL;
} 
5f 32F  2019-05-30 15:38:45
 //获取服务器IP
   gethostbyname($_SERVER['HTTP_HOST']) 

windows运行命令
windows 1
1f 32F  2019-02-11 10:17:11
 taskkill 关闭进程 
 taskkill  /F /IM chrome.exe
 注释:
 taskkill 是命令行命令,/f是强制终止 /im image name的缩写,图像名。你要终止进程要让命令知道你要终止哪个进程啊,image name能区分进程,或者进程的PID能区分进程,就是说根据你的提供的是进程名或者是进程PID来决 定是写/im或/pid。/t 你一定听说过结束进程树吧,t 就是tree的缩写,至于你想编一个结束当期前程序的命令,怎么做呢?要看你想结束什么进程了/f /t不是必须带的,但是不带结束的效果不一定如你所愿,/im或/pid 就看你给的是进程名还是进程的PID了,顺便说句命令行命令可以放在.bat文件中批量执行的 

php面试题更新汇总
php 10
1f 32F  2018-12-19 12:00:47
 不使用中间变量交换两个变量值
 1.list($a,$b) = [$b,$a];
 
 2.$a .= $b;
    $b = str_replace($b,"",$a);
    $a = str_replace($b,"",$a);

 3 $a=$a^$b;
    $b=$b^$a;
    $a=$a^$b; 
2f 32F  2018-12-19 15:10:11
 echo strtoupper('ab你好c');出现乱码处理
 原因:中文有多个字节,英文系统服务器把中文的每个字节都做了处理导致拼接后乱码
 解决:
  利用mb_string内部的函数 mb_conver_case
  函数包括三种模式
  1.MB_CASE_UPPER:转成大写 
  2.MB_CASE_LOWER:转成小写 
  3.MB_CASE_TITLE :转成首字母大写
  查看内置编码 echo mb_internal_encoding();
  echo mb_convert_case("A阿斯顿c",MB_CASE_UPPER,'UTF-8')  //第三个参数可以省略 
3f 32F  2018-12-19 17:34:23
 php buffer 默认4kb(4096)
 流程:  (写满buffer就推给浏览器)
 echo/print -> php buffer -> tcp buffer -> browser 
 outer_buffering函数:
 1.ob_get_level  ob输出缓冲机制的嵌套层级
 2.ob_start 激活并扩充buffer到足够大
 3.ob_get_contents 获取内容(ob_end_clean之后调用则为空)
 4.ob_end_flush  关闭buffer,将数据发送给浏览器,内容依旧存在
 5.ob_end_clean  关闭buffer,数据不发送给浏览器,数据清空 
4f 32F  2019-02-12 17:43:11
 php代码执行经过下面4个阶段:
 1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)  ---扫描
 2.Parsing, 将Tokens转换成简单而有意义的表达式           ---解析
 3.Compilation, 将表达式编译成Opocdes                         ---汇编
 4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。---执行
  
  详情例子见原文:http://www.laruence.com/2008/06/18/221.html 
5f 32F  2019-02-14 17:15:28
 生成唯一ID方法
 uniqid('')        //输出 4bd67c947233e
 也可以加上前缀避免重名
 uniqid('foo_')    //输出 foo_4bd67d6cd8b8f 
6f 32F  2019-02-14 17:17:28
 PHP提供非常有用的系统常量
 当前的行号 (__LINE__)
 文件 (__FILE__)
 目录 (__DIR__)
 函数名 (__FUNCTION__)
 类名(__CLASS__)
 方法名(__METHOD__) 
 名字空间 (__NAMESPACE__)
 很像C语言。 
7f 32F  2019-02-21 19:28:49
 $files = glob('*.php'); //搜索文件
 print_r("<pre>");
 print_r(array_map('realpath',$files)); //获取详细路径 
8f 32F  2019-02-25 10:15:12
 //匿名函数自动加载类
 spl_autoload_register(function ($className)
 {
     echo "所有的包含文件工作都交给我!\r\n";
     $classFileName = "./{$className}.php";
     echo "我来包含!{$classFileName}\r\n";
     include "./{$className}.php";
 }, true, true);
 $objDemo = new AutoloadClass(); 
9f 32F  2019-03-29 14:57:25
 三元
 $a = $b ?: $c;  
 $a = $b ?? $c;  PHP7版本新增 
10f 32F  2019-03-29 17:52:55
 #删除空值
 array_filter($a);  //会unset 为false的值 如 false、""、0 

MySQL TEXT数据类型的最大长度
mysql 1
1f 32F  2018-12-15 10:26:36
 TINYTEXT	       256 bytes	 
 TEXT	       65,535 bytes	        ~64kb
 MEDIUMTEXT  16,777,215 bytes	        ~16MB
 LONGTEXT      4,294,967,295 bytes	~4GB