本博客不定期更新,记录工作中常用的方法
1、在crontab中跑php脚本,一般类似为“*/1 * * * * root /www/php/bin/php /www/web/shell.php”,这时生成的日志文件用户及组所属都为root;如果接下来从浏览器访问项目,服务器采用的是nginx+php-fpm架构,php-fpm的user、group皆为nginx,那么此时写入日志便会出现权限问题,写不进去,这时只需要在跑脚本时获取当前执行进程的用户是否为root,是的话,便修改所属用户及组为nginx即可。
error($message, 3, $destination);
if (PHP_OS != 'WINNT') {
$pid = posix_getpwuid(posix_geteuid());
if (strtolower($pid['name']) == 'root') {
@chown($destination, 'nginx');
@chgrp($destination, 'nginx');
}
}
2、兼容windows、linux、mac的导入csv代码
ini_set('auto_detect_line_endings', true);
3、php的mssql扩展查询出日期的格式问题,默认为“Jul 5 2016 02:28:41:000PM”,要转为常用的“2016-07-05 02:28:41”这种
两种解决方法
一、在代码开头加上ini_set('mssql.datetimeconvert','0');
二、修改php.ini,找到;mssql.datetimeconvert = On ,去掉前面的分号,修改on为off,重启WEB服务器
4、SQL Server中分页及提示列名无效
一、分页
SELECT TOP 10 * FROM ta_name -- 每页10条,第一页
SELECT TOP 10 * FROM ta_name where id NOT IN (SELECT TOP 10 id FROM ta_name) --第二页
SELECT TOP 10 * FROM ta_name WHERE id NOT IN (SELECT TOP 20 id FROM ta_name) --第三页
二、列名无效,查询的字符串为单引号,不能为双引号
select * FROM ta_name WHERE column > '2016-07-06 09:22:15'
5、Yaf框架在5.5版本中加载PHPExcel报错“error:Yaf_Loader::autoload(): Failed opening script /www/web/CallCenter/application/library/PHPExcel/Shared/String.php: No such file or directory”,解决方法如下
在PHPExcel/Autoloader.php找到
return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'));
改为
return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'), true, true);
具体可以参考
http://php.net/manual/zh/function.spl-autoload-register.php