php踩坑记录

函数

mb_strlen 不生效

有一天发现本地mb_strlen('哈')本地为1,服务器为3,猜测应该是配置问题
看文档关键在于mb_internal_encoding

1
2
3
4
5
6
7
8
9
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
继续搜 mbstring.internal_encoding (定义内部字符的默认编码)
Warning: This feature has been DEPRECATED as of PHP 5.6.0. Relying on this feature is highly discouraged.。
PHP 5.6 及更新版的用户应该将此选项留空,并设置 default_charset 作为代替。
好吧,服务器 default_charset 没设置,然后默认用 ISO-8859-1

Read More

mac工具集

brew

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

iterm2

1
2
https://iterm2.com/downloads/stable/iTerm2_v2_0.zip
运行iterm2之后按cmd+,调出设置界面,在'profile' -> "Terminal Type"改成xterm-new。

Read More

基于phpstorm和vagrant环境的xdebug远程调试

网页调试/本地调试

流程是啥

  • 开发环境安装xdebug,配置监听client端(安装phpstorm那端)
  • 配置phpstorm-debug,重点要用path-map,不然对于单一入口的网页调试找不到哦
  • 断点跟踪吧

详细网上资料很多,下边三个都可以用,我就不赘述了

phpstorm远程调试
Zero-configuration Web Application Debugging with Xdebug and PhpStorm
cannot-debug-with-phpstorm-vagrant-xdebug


远程cli调试

Read More

jQuery应用杂记

工作中常用的一些代码片段

全选

1
2
3
4
5
6
7
8
9
$("#ckAll").click(function() {
$("input[name='sub']").prop("checked", this.checked);
});
//全部checkbox选中后 全选框也选中
$("input[name='sub']").click(function() {
var $subs = $("input[name='sub']");
$("#ckAll").prop("checked" , $subs.length == $subs.filter(":checked").length ? true :false);
});

Read More

php信号处理

pcntl

pcntl_signal

信号注册函数

pcntl_alarm

  • 指定秒数中断程序执行任务。
  • 每次执行只会有一个定时器生效,若之前计时器还没结束就定义新定时器,会替代之前定时器并返回之前定时器结束前秒数,若之前计时器已完成返回0
  • 参数设为0,会清空当前所有定时器,并不发起调用
  • 定时器会中断系统,即便是sleep执行中

Read More