PHP实用方法

来源:互联网 发布:淘宝手机专享价 编辑:程序博客网 时间:2024/06/15 09:02


        本博客不定期更新,记录工作中常用的方法


        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




0 0