NGINX支持pathinfo模式

location ~ ^.+\.php {
  (...)
  fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  (...)
}

[转]quora上“编程数量快&&BUG少”最赞回复

原文链接: 点我查看

三个程序员被要求穿过一片田地,到达另一侧的房子。

菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。”

资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。

大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。

菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。

资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。

大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。

“你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?”

“很简单,”他回答道,“我最初就没有埋地雷。”

关于textarea的换行存储到数据库中\n的问题

更新我的日记本的时候有一个需求是这样的:写日记的时候服务端先判断当天有没有写过日记,如果没有写过则直接添加进数据库,如果写过那么就需要将新的日记内容追加到当天的日记后面,同时换行输入新日记内容的时间然后在换行追加新日记的内容。因为有涉及到导入导出因此存入数据库的时候就没有用nl2br的函数来转码,也知道存入的时候就需要添加“\n”符号让他换行,但是奇怪的是居然不行,我是这样写的:

$content = $old_content . '\n' . date('H:i') . '\n' . $new_content;

然后发现输出就是"旧日记\n新日记日期\n新日记内容"的格式,怪了,各种测试,最后一下灵光一闪,我去。。。php的单引号会把引号里面的内容当作字符串处理。。。,改了以后果然正常了-_-||

$content = $old_content . "\n" . date('H:i') . "\n" . $new_content;

Ngnix下打开PHP错误提示

工作环境从Apache切换到Nginx ,发现打开错误提示的时候有那么几个坑, 记录下

  1. 打开错误提示:
sudo vim /etc/php5/fpm/php.ini

找到“display_error=Off,改为On”,同时将error_reporting=E_ALL |...修改为error_reporting=E_ALL |E_STRICT

sudo vim /etc/php5/fpm/php-fpm.conf

最后一行添加上“php_flag[display_errors] = on”

  1. 重启PHP:apache的时候只需要重启apache就行,但是在lnmp下php是作为一个组件安装,因此只需要重启php就行
sudo service php-fpm restart

PHP魔术常量

老是要忘记,备份下-_-||

__LINE__     //文件中的当前行号
__FILE__    //文件的完整路径以及文件名
__DIR__     //文件所在目录,等价于dirname(__FILE__)
__FUNCTION__  //函数名称(区分大小写)
__CLASS__   // 类的名称
__TRAIT__   //Trait的名称
__METHOD__  //类的方法名(区分大小写)
__NAMESPACE__  //当前命名空间的名称(区分大小写)