php剔除非utf-8字符进行json_decode,应对json_decode失败的部分情况 时间: 2017-02-04 分类: php 阅读:次 # 如何处理json中的非法utf8字符 根据utf8的编码范围,是可以剔除掉非法utf8字符的。 可以参见http://magp.ie/2011/01/06/remove-non-utf8-characters-from-string-with-php/ `reject overly long 2 byte sequences, as well as characters above U+10000 and replace with ?` ``` php $some_string = preg_replace('/[\x00-\x08\x10\x0B\x0C\x0E-\x19\x7F]'. '|[\x00-\x7F][\x80-\xBF]+'. '|([\xC0\xC1]|[\xF0-\xFF])[\x80-\xBF]*'. '|[\xC2-\xDF]((?![\x80-\xBF])|[\x80-\xBF]{2,})'. '|[\xE0-\xEF](([\x80-\xBF](?![\x80-\xBF]))|(?![\x80-\xBF]{2})|[\x80-\xBF]{3,})/S', '?', $some_string ); ``` `reject overly long 3 byte sequences and UTF-16 surrogates and replace with ?` ``` php $some_string = preg_replace('/\xE0[\x80-\x9F][\x80-\xBF]'. '|\xED[\xA0-\xBF][\x80-\xBF]/S','?', $some_string ); ``` 这里是把非法字符替换成?,根据需要自己改。
php redis扩展安装 时间: 2016-11-01 分类: php,redis 阅读:次 cd /install wget http://op.kagirl.cn/typecho/usr/uploads/2016/11/4075209923.zip unzip 4075209923.zip cd phpredis-master phpize ./configure make && make install vim /etc/php.ini 在第二行加上 extension=redis.so; [重启php-fpm](http://op.kagirl.cn/typecho/index.php/archives/62.html)
php5.4升级php5.5 时间: 2016-11-01 分类: php,linux 阅读:次 1. 检查当前安装的php版本 rpm -qa |grep php* 2. 移除当前安装的php yum remove php* 3. 添加[yum源](http://op.kagirl.cn/typecho/usr/uploads/2016/11/2094056191.zip)下载解压放到目录 /etc/yum.repos.d/中 4. 安装php5.5 >yum install php55w php55w-gd php55w-mcrypt php55w-fpm php55w-dba php55w-devel php55w-cli php55w-common php55w-mbstring php55w-mysql php55w-xml php55w-xmlrpc 5. 上面安装过程中可能会报错libmcrypt.so不存在 >1. 更新yum源 yum install epel-release //扩展包更新包 yum update //更新yum源 yum install libmcrypt libmcrypt-devel mcrypt mhash 6. [安装php redis扩展](http://op.kagirl.cn/typecho/index.php/archives/71.html) 7. [重启php-fpm](http://op.kagirl.cn/typecho/index.php/archives/62.html) yum update 可能会报错如下: 注: Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again 解决办法如下: 在网上查了查,解决办法是编辑/etc/yum.repos.d/epel.repo,把基础的恢复,镜像的地址注释掉 #baseurl mirrorlist 改成 baseurl #mirrorlist 只改下面这一项就ok了。 [epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearc h failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
关于nginx伪静态 时间: 2016-10-20 分类: php,nginx 阅读:次 1. 实现nginx知识index.php/a/b/c这种url ```nginx location ~ .*\.php(\/.*)*$ { } ``` 2. 匹配相关url实现重定向 ```nginx location ~ /weshow/weshow/spage/[0-9]+.* { rewrite ^/weshow/weshow/spage/(.*)$ /weshow/weshow/spage/index.php/$1 last; } ``` 当访问http://card1.kagirl.net/weshow/weshow/spage/1610/20/14/b1146de6ae53.htm这个页面时实际访问http://card1.kagirl.net/weshow/weshow/index.php/spage/1610/20/14/b1146de6ae53.htm
php-fpm启动 时间: 2016-10-19 分类: php 阅读:次 1. 已安装好的 service php-fpm restart 2. 自安装的 php-fpm -D -c /etc/php.ini -y /etc/php-fpm.conf
composer安装 时间: 2016-08-30 分类: php 阅读:次 php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php php composer-setup.php php -r "unlink('composer-setup.php');" 中国区镜像库: 全局 composer config -g repo.packagist composer https://packagist.phpcomposer.com 生产环境优化加载 composer dump-autoload --optimize 安装包的时候可以同样使用--optimize-autoloader。不加这一选项,你可能会发现20%到25%的性能损失。
php安装scwc分词扩展 时间: 2016-05-16 分类: php 阅读:次 #命令如下 wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.1.tar.bz2 | tar xjf - cd scws-1.2.1 ; ./configure ; make install cd phpext ; phpize ./configure --with-scws=/usr/local --with-php-config=/alidata/server/php/bin/php-config make ; sudo make install vi /alidata/server/php/etc/php.ini 输入: extension = scws.so scws.default.charset = gbk scws.default.fpath = /usr/local/etc scp root@10.116.7.187:/usr/local/etc/dict.utf8.xdb /usr/local/etc /etc/init.d/php-fpm restart
ThinkPHP复合查询 时间: 2016-05-02 分类: php 阅读:次 商城开发过程中,做SELECT操作进行查询,使用数组条件时,需and与or同时使用,方法如下: $where["a"] = array("EQ", "1"); $where["b"] = array("NEQ", "2"); $where["_logic"] = "OR"; $map["c"] = array("EQ", "3"); $map["_complex"] = $where; SQL:SELECT * FROM TABLE WHERE a = 1 or b = 2 and c = 3