在安装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的读和执行权限。
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使用介绍也就这么多了。
对于初学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模式传输数据。
json只能使用utf-8编码来进行操作,否则就会返回null或空字符串了,下面提供一个非常简单的办法供大家参考。原因分析
其它的json_decode($str)返回NULL的一些原因:
1.$str只能UTF-8编码
2.元素最后不能有逗号(与php的array不同)
3.元素不能使用单引号
4.元素值中间不能有空格和\n,必须替换
在用PHP JSON处理符合标准的GBK编码内容时会返回null,将内容从GBK转换为UTF8再处理正常:
代码如下 | 复制代码 |
|
php大家用的版本不断提高,Ecshop没有来得及修改那么及时。
Ecshop安装出现
Only variables should be passed by reference
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了
代码如下 | 复制代码 |
$tag_sel = array_shift(explode(' ', $tag)); 改成: $tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr); |
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
修改
代码如下 | 复制代码 |
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead...? $out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n"; |