1. php多用户文件写权限问题
一般情况下,运行php进程的用户为www,有时候一些后台运行的守护进程或定时脚本,会用admin用户,二者都会对同一日志文件进行写操作,所以必须保证两者都有写权限。因此在创建文件或目录的时候,可以先创建,再修改权限。
//创建目录
mkdir($dir, 0777);
chmod($dir, 0777);
//创建文件
touch($file_path, 0666);
chmod($file_path, 0666);
这里就不对umask进行介绍了,umask如何影响目录或文件权限?详情baidu.
2. bom头问题
若php文件中包含bom头,在运行过程中,会有额外的输出,如果是接口,就会导致数据的解析失败。如何避免去除文件的bom头呢?可以考虑下面的方法
function checkBOM($filename) {
$contents = file_get_contents ( $filename );
$charset [1] = substr ( $contents, 0, 1 );
$charset [2] = substr ( $contents, 1, 1 );
$charset [3] = substr ( $contents, 2, 1 );
if (ord ( $charset [1] ) == 239 && ord ( $charset [2] ) == 187 && ord ( $charset [3] ) == 191) { // BOM 的前三个字符的ASCII 码分别为 239 187 191
return true;
} else{
return false;
}
}
3. php5.6自动加载问题
经验证,在php5.6环境下,new对象时,类名不符合规范时,不会进入到注册的自动加载函数中
因此,在通过外部的类名入参来new对象时,需验证类名是否符合规范,避免在php5.6环境下报fatal error
$match = preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $ctlClass);
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。