分类 - 随手记

PHP Composer    2018-06-29 16:02:43    325    0    0
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        },
        "0": {
            "type": "path",
            "url": "../path"
        }
    }


2017-11-14 10:37:33    199    0    0

自己写了一遍并不对

  1. function getAllFile($path)
  2. {
  3. $lists = scandir($path);
  4. unset($lists[0]);
  5. unset($lists[1]);
  6. foreach($lists as $file){
  7. $file = $path.'/'.$file;
  8. if (is_dir($file)){
  9. yield getAllFile($file);
  10. } else {
  11. yield $file;
  12. }
  13. }
  14. }

百度了以后差点笑出声

  1. function getAllFile($path)
  2. {
  3. $lists = scandir($path);
  4. unset($lists[0]);
  5. unset($lists[1]);
  6. foreach($lists as $file){
  7. $file = $path.'/'.$file;
  8. if (is_dir($file)){
  9. foreach(getAllFile($file) as $file){
  10. yield $file;
  11. }
  12. } else {
  13. yield $file;
  14. }
  15. }
  16. }
JS    2017-10-14 09:01:08    183    0    0

  1. var tmp = new Date();
  2. function f() {
  3. console.log(tmp);
  4. if (false) {
  5. var tmp = 'hello world';
  6. }
  7. }
  8. f(); // undefined

作用域内先使用后声明,即使不会运行也会覆盖之前变量

  1. function f1() {
  2. let n = 5;
  3. if (true) {
  4. let n = 10;
  5. }
  6. console.log(n); // 5
  7. }

ES6 的块级作用域解决了这个问题

块级作用域的出现,实际上使得获得广泛应用的立即执行函数表达式(IIFE)不再必要了

  1. // IIFE 写法
  2. (function () {
  3. var tmp = ...;
  4. ...
  5. }());
  6. // 块级作用域写法
  7. {
  8. let tmp = ...;
  9. ...
  10. }
MySQL    2017-10-13 18:06:28    219    0    0

建表优化

"IP地址存成 UNSIGNED INT"(inet_ntoa)

"如“性别”,使用 ENUM 而不是 VARCHAR"

"固定长度的表读取更快,但是浪费一些空间"

"绝大多数只需要读表和插入的操作的表,MyISAM会更好,在写操作和高级应用,比如事务,用InnoDB"(争议)

"垂直分割分出去的字段所形成的表,你不会经常性地去Join他们,不然的话,性能会是指数级的下降。"

"索引并不只是给主键或是唯一字段。如果某个字段经常用来搜索,就建立索引。"

MySQL    2017-10-09 21:35:27    235    0    0

MySQL 版本5.5.40

表结构如下
表结构
(text 为4K无意义数据)

测试以下几种情况

  1. user_id 无索引下sum 在text 之后
  2. user_id 无索引下sum 在text 之前
  3. user_id 有索引下sum 在text 之后
  4. user_id 有索引下sum 在text 之前

填充数据
填充数据

好了,下面开始吧
title

进行测试的SQL 为select sum(sum) as sum,user_id from test group by user_id order by sum desc


1. user_id 无索引下sum 在text 之后

title
title
title

2. user_id 无索引下sum 在text 之前

title
title
title

3. user_id 有索引下sum 在text 之后

title
title
title

4. user_id 有索引下sum 在text 之前

title
title
title


什么鬼?我都怀疑是不是我测试错了

索引大量重复的情况下,并不会快

统计user_id

title

有索引的话

title

PHP JS    2017-10-07 09:39:09    249    0    0

  1. $oScript = new COM("MSScriptControl.ScriptControl");
  2. $oScript->Language = "JavaScript";
  3. $oScript->AllowUI = false;
  4. echo $oScript->Eval($_POST['code']);
PHP 协议    2017-08-30 18:12:59    209    0    0

  1. <?php
  2. $version = 1;
  3. $result = 0;
  4. $command_id = 1001;
  5. $username = "陈一发";
  6. $password = md5("123456");
  7. // 构造包体
  8. $bin_body = pack("a20a32", $username, $password);
  9. // 包体长度
  10. $body_len = strlen($bin_body);
  11. $bin_head = pack("nCns", $body_len, $version, $command_id, $result);
  12. $bin_data = $bin_head . $bin_body;
  13. $body_len = unpack("n", substr($bin_data, 0, 2));
  14. $version = unpack("C", substr($bin_data, 2, 3));
  15. $command_id = unpack("n", substr($bin_data, 3, 5));
  16. $result = unpack("s", substr($bin_data, 5, 6));
  17. $bin_body = unpack("a20", substr($bin_data, 6));
JS    2017-07-21 18:35:52    208    0    0

  1. function time(time){
  2. return function(){
  3. console.log(time);
  4. return --time;
  5. }
  6. }
  7. setInterval(time(12744), 1000);

  1. $("#open").click(function(time){
  2. return function(){
  3. time ? alert("开") : alert("关");
  4. time = 1 - time;
  5. }
  6. }(1));