用PHP实现位标记,用PHP二进制实现类似0777权限设计

有人会问这个使用场景,比如 数据库字段你存一个用户的爱好集合,你使用json [“xx”,”xx”] 还是希望用一个int 来存集合?

目前我使用两种方案。
第一种是转换为 二进制字符串,然后从右往左 按照位是否是==1 来标记集合.
第二种使用 按位与& 来实现,是否 爱好和 用户int 命中,如果两者的任意位 命中,那么 a&b 一定>0 也就是 !=false 也就是 !==0b0

先看看原理图
dec2bin2array.png

阅读更多

php拓展 php安装redis

1
git clone https://github.com/phpredis/phpredis
1
2
3
4
5
cd phpredis
phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make && make install
ls /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/

追加php.ini

1
2
[redis]
extension = /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/redis.so

php拓展-php安装yacyaconf拓展;ClassYaconfnotfound

download resource

1
git clone  https://github.com/laruence/yaconf
1
2
3
4
5
 cd yaconf/
phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make -j
make install

最后添加到php.ini

1
2

extension=/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/yaconf.so

php拓展-php安装sqlservesqlsrv-宝塔

laravel报错

1
2
Illuminate\Database\QueryException
could not find driver (SQL: select top 1 * from [lswl_event] where [lswl_event].[event_id] = 1)

一、【加入微软的源】

1
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo

二、【安装驱动】

1
yum -y install msodbcsql mssql-tools unixODBC-devel

3、编译

1
2
3
4
5
6
7
8
9
wget http://pecl.php.net/get/pdo_sqlsrv-5.8.0.tgz
tar -zxvf pdo_sqlsrv-5.8.0.tgz
cd pdo_sqlsrv-5.8.0

phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make
make install

4、 修改php.ini

1
extension=/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/pdo_sqlsrv.so