Skip to content

Instantly share code, notes, and snippets.

@luxixing
luxixing / 科学上网信息.md
Created May 10, 2016 03:27
如何科学的上网,信息在此收集
@luxixing
luxixing / CentOS 6.5下PHP-6.4编译安装.md
Last active August 29, 2015 14:13
CentOS 6.5下PHP-6.4编译安装

####编译前执行下列命令####

#添加组
groupadd www
#添加php-fpm用户
useradd -c php-fpm-user -g www -M php-fpm

# c和c++编译器
yum install -y gcc gcc-c++
@luxixing
luxixing / 属性(properties).md
Last active August 29, 2015 14:01
YII2 框架关键概念

属性

在PHP里,类的成员变量也被称之为属性,这些变量是类定义的一部分,被用来表示类实例的状态(区分不同类实例)。在具体的实践中,你可能要经常处理可读或者可写属性的特殊方式,举个例子, 你可能想要给属性$label赋值一个字符串,但是这个字符串必须使用trim函数过滤开头结尾的空格,为了完成这个特殊处理你可能需要使用如下代码

$object->label = trim($label);

上述代码的缺点是,凡是在给label属性赋值的时候,你都必须使用trim函数去处理。假设在以后label属性的首字母必须大写,那么凡是给label属性赋值的代码,就必须被修改。你应该尽可能的避免这种代码重复。

@luxixing
luxixing / hash.md
Created November 14, 2013 08:26
理解hash冲突和hash表的一个很关键的过程

我刚才想到一点,感觉应该可能是造成我困扰的主要原因 就是我把hash算法和hash表索引算法想成一个东西了 hash算法:time33等, hash表索引算法:h & ht->tTableMask,或者 h % 32 哈希算法的结果是h, h & ht->tTableMask的结果是元素在hash表中的位置

@luxixing
luxixing / roll.php
Created November 13, 2013 15:34
权重概率计算
<?php
$w = array('a' =>1, 'b'=>10, 'c'=>14, 'e'=>20, 'f'=>30, 'h'=>6, 'g'=>70);
function roll($weight)
{
$sum = array_sum($weight);
$j = 0;
foreach($weight as $k=>$v)
{
$j = mt_rand(1,$sum);
if($j <= $v)
@luxixing
luxixing / php.ini文件加载定位.md
Created November 12, 2013 09:18
这是一个很牛逼的经验 大昆仑的少年天才方汉方总威武

学会用strace:

strace -o php.log -s 65535 php -i

然后在 php.log 中找ini:

open("/usr/bin/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/etc/php.ini", O_RDONLY)

@luxixing
luxixing / PHP迁移A-新特性.md
Last active August 22, 2017 23:43
PHP从5.3向更高版本升级, 处理好不兼容和变更的部分, 掌握新的特性,此系列内容只针对语言层面,至于zend engine优化,修改,不会影响到PHP开发,且本人能力有限,将不会涉及

##PHP 5.4新特性##

掌握

  • traits
    trait的引入,可以扩展class的内容,使class在某种形式上实现了多重继承,更加灵活,trait不能被实例化 举个例子,假设有三个类,男人,女人,人,人是男人和女人的父类,双11购物不是人人都有的行为,放在人 这个父类里显然不合适,我们把双11购物单独定义为一个trait,这个双11购物的trait不能自己驱动,需要被 其他类引用,从而让引用trait的类具有购物行为
    示例代码:
@luxixing
luxixing / PHP 5.5编译安装配置参数.sh
Created November 8, 2013 06:10
PHP 5.5.5编译安装配置参数
./configure \
--prefix=/home/liwh/program/php-5.5.5\
--enable-fpm\
--with-fpm-user=php-fpm\
--with-fpm-group=php-fpm\
--enable-opcache\
--enable-calendar\
--enable-exif\
--enable-ftp\
--enable-gd-native-ttf\
@luxixing
luxixing / nginx-location
Created November 1, 2013 09:16
nginx location 匹配规则
1 普通匹配,遵循最长匹配规则,假设一个请求匹配到了两个普通规则,则选择匹配长度大的那个
例如:
location /{
[matches]
}
location /test{
[matches]
}
2 精确匹配
location = /{
@luxixing
luxixing / .gitignore
Created October 30, 2013 07:32
git ignore files
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #