我们生成excel都会使用phpExcel类,这里就来给大家介绍在生成excel列名超过26列大于Z时的解决办法,这是phpExcel类中的方法,今天查到了,记录一下备忘,代码如下:
代码如下 | 复制代码 |
public static function stringFromColumnIndex($pColumnIndex = 0) { // Using a lookup cache adds a slight memory overhead, but boosts speed // caching using a static within the method is faster than a class static, // though it's additional memory overhead static $_indexCache = array(); if (!isset($_indexCache[$pColumnIndex])) { // Determine column string if ($pColumnIndex < 26) { $_indexCache[$pColumnIndex] = chr(65 + $pColumnIndex); } elseif ($pColumnIndex < 702) { $_indexCache[$pColumnIndex] = chr(64 + ($pColumnIndex / 26)) . chr(65 + $pColumnIndex % 26); } else { $_indexCache[$pColumnIndex] = chr(64 + (($pColumnIndex - 26) / 676)) . chr(65 + ((($pColumnIndex - 26) % 676) / 26)) . chr(65 + $pColumnIndex % 26); } } return $_indexCache[$pColumnIndex]; } |
将列的数字序号转成字母使用,代码如下:
代码如下 | 复制代码 |
PHPExcel_Cell::stringFromColumnIndex($i); // 从o开始 |
将列的字母转成数字序号使用,代码如下:
代码如下 | 复制代码 |
PHPExcel_Cell::columnIndexFromString('AA'); |
希望本文所述对大家的php程序设计有所帮助。
502 bad gateway这个问题很多朋友一看就以为是nginx或apache的问题,其实不然了,除了它们两会出现这个问题之外还有像php模块也会导致此问题的出现了,下面一起来看看吧.502 bad gateway不一定全是nginx,apache之类引起的,也有可能是由其他模块引起的,例如:php
1,查看php-fpm和nginx的log
# vim /var/log/nginx/error.log
recv() failed (104: Connection reset by peer) while reading response header from upstream
# vim /var/log/php-fpm/error.log
WARNING: [pool www] child 29522 exited on signal 11 (SIGSEGV - core dumped) after 2165.472759 seconds from start
2,由php的eaccelerator导致502 bad gateway错误
我根据上面的二个错误,在网上找方法大部分都说是由nginx或者apache引起的,最近并没有动nginx的配置,不可能好好的就不行了,当看到有说php扩展apc,有可能会引起502 bad gateway时,因为eaccelerator根apc差不多,猜想会不会是eaccelerator引起502呢?
# mv /etc/php.d/eaccelerator.ini{,bak}
# /etc/init.d/php-fpm restart
重启后问题解决。开始的时候,我以为是cache目录和log目录的权限导致502的,就算改了所属用户,并且在加上777权限,也还是502错误
JpGraph是一个非常不错的图形类库了,我们可以直接使用它生成各种柱状图,饼图,折线图并且还可以增加文字说明了,在增加英文数字时没有问题,但增加中文汉字说明时会发现乱码问题,对此小编整理了一些解决JpGraph中文乱码问题的方法供各位参考。JpGraph为什么会出现中文乱码
在JpGraph中默认是要把字符串转成utf8的,但是如果你的文件本身就是utf8的,并且要用中文字体,它还会转一遍,结果多转了一次,就会出现乱码。如图所示
JpGraph使用详解之中文乱码解决方法
取前篇的代码片断如下
代码如下 | 复制代码 |
//设置图表的标题字体、大小 //和上面标题对应,设置标题的字体和大小 把它改为 //设置图表的标题字体、大小 //和上面标题对应,设置标题的字体和大小 |
使用php函数据中文由UTF-8转为GB2312,记住由于iconv本身的一个bug,iconv在转换字符"—"到gb2312时会出错,所以在需要转成的编码后加上 "//IGNORE" 。
FF_SIMSUN表示中文简体,对应的字体文件是simsun.ttc,虽然FF_CHINESE和FF_BIG5也表示中文但是它们对应的字体文件是不同的,所以不要弄错。
下面是正确转换后生成的图
下面是本例调试的完整代码
代码如下 | 复制代码 |
require_once ('jpgraph/jpgraph.php'); $data1y=array(0,8,9,3,5,6); // Create the graph. These two calls are always required $graph->SetShadow(); // Create the bar plots // Create the grouped bar plot // ...and add it to the graPH $graph->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->Stroke(); |
当然了,我这里只介绍了一种方法,还有一种就是修改源码,但不推荐。因为我觉得改动源码可能会给其它地方带来意想不到的麻烦。
使用JpGraph,要知道其版本、运行服务器以及操作系统的息息,不能张冠李戴,否则麻烦多多。
好了,至此JpGraph使用介绍也就这么多了。
windows2003,在装phpmyadmin的时候居然报错 Warning: require(./libraries/Error_Handler.class.php) [function.require]: 。解决方法如下在安装phpMyAdmin-4.0.10.7时出现如下错误:(我的机器是windows server 2003 + iis6.0+php5.2.17)
Warning: require(./libraries/Error_Handler.class.php) [function.require]: failed to open stream: No such file or directory in E:wwwphpMyAdminlibrariescommon.inc.php on line 64
Fatal error: require() [function.require]: Failed opening required './libraries/Error_Handler.class.php' (include_path='.;C:php5pear') in E:wwwphpMyAdminlibrariescommon.inc.php on line 64
common.inc.php和Error_Handler.class.php文件是存在的,php是装在D:php下,后来网上找了好久发现是目录权限不足。
给phpmyadmin安装的上级目前加上Users权限,就可以了,比如我的phpmyadmin是在www下面,就给www加上User的读和执行权限。
对于初学php的朋友碰到问题肯定最多的就是php mysql查询插入中文乱码了,这个问题对于老手来讲不是问题,下面我根据自己的经验来给各位分析一下吧。一.中文问题其实就是经统一编码了否则就会乱码
1.数据库与php页面编码统一
2.数据库数据表字段与页面编码统一
如果做到上面两种就不存在中文乱码问题了,那么我们来看mysql中文乱码问题解决例子
1.我的mysql表如下
--
-- 表的结构 `useradmin`
--
代码如下 | 复制代码 |
CREATE TABLE IF NOT EXISTS `userain` ( |
上面所有的都是utf8编码了,这样我来测试一个中文
代码如下 | 复制代码 |
INSERT INTO `userain` (`id`, `我是中文`, `userpass`, `logins`, `logintime`, `mid`) VALUES |
我说可以正常进入也有人说肯定不行其实关键不在sql语句了,重点在于php连接mysql数据时的编码设置,如下。
页面编辑为gbk
代码如下 | 复制代码 |
<?php ?> |
连接数据库之后提交肯定是乱码或保存不进行了,如果要解决这个mysql中文乱码问题很简单在查询处的
代码如下 | 复制代码 |
<?php |
这样再提交你会发现就算你的页面是gbk的提交的数据保存也会成功哦
ps:对于ajax我们就一定要用uft8了,因为ajax只支持uft8模式传输数据。