 web开发
	
		web开发
		
	
		
		
			 1574
		
		
	
	默认的PHP的echo、print之类的输出会被缓存,当缓存达到特定的大小或脚本执行结束,或强行刷新缓冲区才会发送到浏览器客户端。
`php.ini`的`outputing_buffer`字段默认是4096,表示缓存的大小,如果大于该值则会像浏览器客户端输出。但是我发现该值不管怎么改(`ini_get('outputing_buffer')`值始终为0),都不会影响输出,即不会有缓存,这里就不去研究为什么了,这里主要想说的是ob相关的函数。
有时我们需要对输出进行严格控制,比如我要输出100k的数据,而且是一次
	
		 web开发
	
		web开发
		
	
		
		
			 1531
		
		
	
	string setlocale ( int $category , string $locale [, string $... ] ) 
设置本地地区信息(地区信息是针对一个地理区域的语言、货币、时间以及其他信息。)
$category可用的常量(这些常量都是php内置,结果都是int型):
	LC_ALL - 包括下面的所有选项
	LC_COLLATE -排序次序
	LC_CTYPE - 字符类别及转换(例如所有字符大写或小写)
	LC_MESSAGES - 系统消息格式
	LC_MONETARY - 货
	
		 web开发
	
		web开发
		
	
		
		
			 1558
		
		
	
	(PHP 5, PHP 7)
ReflectionClass 类报告了一个类的有关信息。
```php
//类摘要
ReflectionClass implements Reflector {
//常量
const integer IS_IMPLICIT_ABSTRACT = 16 ;
const integer IS_EXPLICIT_ABSTRACT = 32 ;
const integer IS_FINAL = 64 ;
//属性
public $name ;
//方法
public __construc
	
		 linux
	
		linux
		
	
		
		
			 1371
		
		
	
		stat命令:文件/文件系统的详细信息显示; 
	格式:stat 文件名 
	stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: 
	-f  不显示文件本身的信息,显示文件所在文件系统的信息 
	-L  显示符号链接 
	-t  简洁模式,只显示摘要信息
	需要注意的是在Mac下stat命令需加-x参数
Access:最后访问文件时间(cat等命令)
Modify:最后修改文件内容时间(vim等命令)
Change:最后修改文件属性时间(chmod/chown等命令)
 linux
	
		linux
		
	
		
		
			 2605
		
		
	
	日常开发中经常需要写一点脚本,`project.sh`有如下一段内容:
```bash
#!/usr/bin/env bash
dir=/data/httpd/www/project/$1
if [ ! -z $1 ] && [ -d $dir ];then
    cd $dir
else
    cd /data/httpd/www/project
fi
```
在当前终端,你如果直接执行`./project.sh`,是无法实现切换到指定目录的,因为shell在执行脚本时,会创建一个子shell,并在子she
	
		 web开发
	
		web开发
		
	
		
		
			 1368
		
		
	
	JavaScript自带的Math.Round()函数返回的是四舍五入后的一个整数,无法精确到小数点后。
Number.toFixed()方法,是保留小数点后面的指定位数。例如:1.005.toFixed(2)返回的是1.00,并没有四舍五入。
这里推荐一个方法:
```js
var number = 1.005;
alert(Math.round(number * 100) / 100);
```
	
		 Mac OS
	
		Mac OS
		
	
		
		
			 1406
		
		
	
	以下所有操作,请在命令行执行:
```bash
cd /Applications/Beyond\ Compare.app/Contents/MacOS/
mv BCompare BCompare.real
vim BCompare
#复制下面的脚本,粘贴进去
chmod +x BCompare
#至此,大功告成
```
```bash
#!/bin/bash
if [ -e /Users/$(whoami)/Library/Application\ Support/Beyond\ Compare/registr
	
		 Mac OS
	
		Mac OS
		
	
		
		
			 1729
		
		
	
	今天写个脚本,发现一个诡异的问题,主要是目录或文件中有空格导致脚本报错,具体案例如下:
###### 错误示范1:
```bash
#!/bin/bash
file="/Users/$(whoami)/Library/Application\ Support/Beyond\ Compare/registry.dat"
#if [ -e $file ]
if [ -e "$file" ]
then
        echo "文件存在";
else
        echo "文件不存在";
fi
```
##
	
		 Mac OS
	
		Mac OS
		
	
		
		
			 1455
		
		
	
	`ctl+shift+p`输入`install`选择第一个`Package Control: Install Package`
安装插件`Markdown Extended` `OmniMarkupPreviewer `
要使`.md`格式的文件都使用`Markdown Extended`打开,步骤:`View -> Syntax -> Open all with current extension as... -> Markdown Extended`
若有如下报错:
```
'buffer_id(31)
	
		 web开发
	
		web开发
		
	
		
		
			 499
		
		
	
	##### 如果你已检查完所有的nginx常用配置,还是报这个错,那可能有一个不太常用的配置容易被忽略,那就是`open_basedir`
###### 如果你的nginx未配置open_basedir或者php.ini中未启用open_basedir,请检查项目根目录是否有一个名为.user.ini的隐藏文件
###### open_basedir相关
```
open_basedir限制php进程不能读取open_basedir设置的目录之外的文件
open_basedir在php.ini和nginx中都