
PHP
冷兮公子
这个作者很懒,什么都没留下…
展开
-
PHP数组占用很大内存的分析
详情:http://blog.youkuaiyun.com/hguisu/article/details/7376705转载 2016-07-02 21:20:28 · 1475 阅读 · 0 评论 -
php的curl超时参数
以下是官方手册文档:CURLOPT_CONNECTTIMEOUT :The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.在尝试连接的时候等待的秒数。使用0无限期地等待。(即连接上服务器需要多长时间)CURLOPT_TIMEOUT:The maximum原创 2017-06-26 14:43:28 · 954 阅读 · 0 评论 -
php的trim函数遇到的问题
问题一:看如下代码<?php$val = true;var_dump(trim($val)); //string '1' (length=1)$val = false;var_dump(trim($val)); //string '' (length=0)trim函数直接将bool类型的变量变成了string类型:true --> '1'原创 2017-07-06 15:26:47 · 676 阅读 · 0 评论 -
编写php扩展一般步骤
网上教程:http://blog.youkuaiyun.com/tsxw24/article/details/9012867安装过程中才知道通过apt-get install 方式安装的PHP没有源码,而要编写PHP扩展需要用到源码,在官网下载源码后进入ext/目录执行./ext_skel命令即可转载 2016-07-02 21:22:19 · 256 阅读 · 0 评论 -
ci框架用active_record模型实现分页的技巧
假设我们有这样的一个日志表,记录了各个事件反生时的时间戳:CREATE TABLE `logs`( `timestamp` BIGINT, `event` varchar(50))如果我们要在页面上分页显示出这些事件,假设我们要用ci框架的active_record类实现分页,可能的代码如下://根据条件过滤$this->db->select('*')->from('log原创 2017-08-03 16:01:00 · 562 阅读 · 0 评论 -
php字符串当数组使用isset的问题
$val = 'abcd';if(isset($val['grp'][0])){ echo '1111';}if(isset($val['grp'][1])){ echo '2222';}输出:1111很奇怪吧,如果直接打印呢?var_dump($val['grp'][0]);输出:string 'a' (length=1)当然开了调试模原创 2017-07-27 09:29:05 · 530 阅读 · 0 评论 -
编译php
./configure --prefix=/var/php --with-config-file-path=/var/php --enable-fpm --enable-opcache --enable-debug --enable-maintainer-zts原创 2017-11-18 17:06:48 · 206 阅读 · 0 评论 -
用rsa加密登录密码(js+php)
1、首先检查设备上是否已经存在openssl库(一般的linxu都会自带有),然后生成私钥和公钥:私钥:openssl genrsa -out /etc/dev_cert/php_private.key 2048公钥:openssl rsa -in /etc/dev_cert/php_private.key -pubout -out /etc/dev_cert/php_public.k原创 2018-02-02 17:00:24 · 1407 阅读 · 0 评论 -
php 用array_column代替用foreach来生成关联数组
从数据库取出的数据是一个二维数组,假设如下:$arr = [ ['id' => 111, 'name' => '张三'], ['id' => 222, 'name' => '李四'],];有时候我们可能需要以id为键值返回该数组,于是我们一般会这样写:$ret = [];foreach($arr as $val) { $ret[$val...原创 2018-05-03 20:36:14 · 1022 阅读 · 0 评论 -
用xhprof分析php性能
https://www.jianshu.com/p/c69e368de756转载 2018-04-28 14:49:12 · 191 阅读 · 0 评论 -
php switch语句中case为不同类型时的坑
在工作中遇到如下代码片段:switch ($type) { case 'branch': case -1: echo -1; break; case 0: echo 0; break; case 1: echo 1; break; }测试部给我提了个bug,说怎么都过滤...原创 2018-07-13 15:28:28 · 3481 阅读 · 0 评论 -
非阻塞exec
用nohup或者&配合> /dev/null可以实现非阻塞的execexec('nohup php get_data_for_dingzhi > /dev/null &');nohup 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的...原创 2018-07-20 17:29:26 · 1068 阅读 · 0 评论 -
编写PHP扩展库步骤
笔记:1、下载PHP源码,然后解压缩,假设路径为:/home/wyq/php-7.3.0,给目录添加可执行权限,chmod -R +x ./2、进入/home/wyq/php-7.3.0/ext/目录,最好给然后执行 ./ext_skel --extname=wyq其中wyq就是扩展库的名称,wyq.so,3、之后会在ext目录下生成wyq目录,进入wyq目录查看会...原创 2019-01-10 11:41:53 · 386 阅读 · 0 评论 -
php浮点数的问题
http://www.laruence.com/2013/03/26/2884.html 这个问题的关键点就是: “你看似有穷的小数, 在计算机的二进制表示里却是无穷的”转载 2016-07-02 21:18:42 · 247 阅读 · 0 评论 -
string类型转int类型的三种方法速率比较
如果我们使用sqlite数据库,那么int类型的字段,独取出来的值会是string类型的,比如:id name age1 Jame 20php读取出来后,变成:$arr = array( 'id' => '1', 'name' => 'Jame', 'age' => '20');这时候可能就需要转换成int类型了,有三种方式(int)$val原创 2017-07-12 11:14:09 · 2723 阅读 · 0 评论 -
PHP in_array的性能问题
in_array — 检查数组中是否存在某个值,而且区分大小写bool in_array ( mixed$needle , array $haystack [,bool $strict = FALSE ] )如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查needle 的类型是否和 haystack 中的相同。不使用第三个参数带转载 2016-07-02 21:21:33 · 670 阅读 · 0 评论 -
正则表达式多行修饰符m的问题
官方解释:m (PCRE_MULTILINE)默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), "行首"元字符 (^) 仅匹配字符串的开始位置, 而"行末"元字符 ($) 仅匹配字符串末尾, 或者最后的换行符(除非设置了D 修饰符)。这个行为和 perl 相同。 当这个修饰符设置之后,"行首"和"行末"就会匹配目标字符串中任意换行符之前或之后,另外原创 2016-07-02 21:25:04 · 618 阅读 · 0 评论 -
php的异常处理
$a = null;try{ $a = 5/0; echo $a;catch(Exception $e){ echo $e->getMessage(); $a = -1;}echo $a;//null以上代码会触发异常,分母不能为零;该异常不会被捕获到,即$a没有被赋予-1的值;PHP通常是无法自动捕获有意原创 2016-07-02 21:26:06 · 213 阅读 · 0 评论 -
phpstorm部署sftp的root path跟mappings的问题
在部署phpstorm的sftp时要注意root path的设置,例如如果想要将本地的/var/www目录映射到服务器上的/var/www目录,那么如果你的root path为/var/www,然后mappings里面的server path为/var/www,这时候就错了,这样会使得本地的/var/www目录映射到服务器上的/var/www/var/www目录,原因就是设置了ro原创 2016-07-16 15:32:29 · 4163 阅读 · 0 评论 -
phpstorm sftp无法连接服务器
问题:phpstorm sftp连接服务器时出现:Connection to '172.16.7.43' failed. Algorithm negotiation fail解决:1、vim /etc/ssh/sshd_config 2、然后将以下两行注释掉: #Ciphers aes256-cbc #MACs hmac-s原创 2016-07-18 20:12:20 · 9939 阅读 · 0 评论 -
PHP线程安全与非线程安全的区别
转载自:http://koda.iteye.com/blog/662034 Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。 从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程转载 2016-07-21 18:58:38 · 440 阅读 · 0 评论 -
phpstorm注册码
phpstorm注册码地址:http://idea.lanyus.com/绝对好用^^原创 2016-08-02 17:53:06 · 408 阅读 · 0 评论 -
php三目运算的问题
问题:如下代码$a = 0;$b = $a == 0 ? '00000' : $a == 1 ? '11111' : '22222';//期望输出00000,实际输出11111echo $b;原因:由于有两个三目运算,所以第二个三目运算要加上括号,具体原因不清楚;正确写法:$a = 0;$b = $a == 0 ? '00000' :原创 2016-08-29 16:06:41 · 1506 阅读 · 0 评论 -
php数组下标不为不连续的数字的问题
问题:如下例子,$arr1 = array( 0 => 'aaaaa', 1 => 'bbbbb');$arr2 = array( 0 => 'aaaaa', 2 => 'bbbbb');echo json_encode($arr1);//输出["0":"aaaaa","1":"bbbbb"],数组echo j原创 2016-09-02 15:29:50 · 3271 阅读 · 0 评论 -
PHP正则匹配中文字符(囊括大部分)
header('content-type:text/html;charset=utf-8');$str = '33我!们3 +/?%#&=~3';if(preg_match_all('/[+\/?%#&=~\x{4e00}-\x{9fa5}\x{300a}-\x{300f}\x{3001}-\x{3002}\x{ff08}-\x{ff09}\x{201c}-\x{201d}\x{2018}-\原创 2016-10-31 16:34:24 · 707 阅读 · 0 评论 -
CI框架解决jsonp跨域的问题
现象: 如果js端用了jsonp跨域的请求方式,并且CI配置文件设置了$config['sess_time_to_update'] = xxx;那么,在xxx秒后点击页面发送请求,帐号会被退出;原因: 在文件:system/libraries/Session/Session.php构造函数中有这样一段:if ((empty($_SERVER[原创 2017-01-17 10:48:27 · 1833 阅读 · 0 评论 -
数据库用一个int类型的字段保存前端多个字段(该字段为多选)
现象:一般我们都是前端多少个字段,数据库就保存多少个字段, 例如,填写爱好(多选):1、打篮球 2、踢足球 3、打台球数据库有两种方法保存:1,添加一个字段hobby:1,2,3 2,新增一张表保存所有值:uid bobby_id原创 2017-01-21 18:17:45 · 4868 阅读 · 0 评论 -
PHP sprintf函数输出%字符
$str = 'it is %s%';$str = sprintf($str, 90);如上代码,我们要输出"it is 90%"这样的字符串,想通过sprintf函数解析,不幸的是会返回 false的错误,sprintf的特殊字符要用%来转义,于是得到下面的代码:$str = 'it is %s%%';$str = sprintf($str, 90); ...原创 2019-02-18 16:29:14 · 712 阅读 · 0 评论