话说,最近在用php写学校的大作业,要求是开发一个网站。本文是一个日记类型的文章,主要记录我在开发过程中出现的问题。
问题一:编码问题使得php无法向mysql插入中文。
解决:
1:插入之前利用pdo对象->exec("set names gbk");
2:插入之前利用iconv()函数转换要插入的中文的编码为gbk。
我发现做到这两点基本就没问题了,但查一些网上资料要加上: header("Content-type: text/html; charset=gbk");
除此之外,mysql端要做的事为:
1:键入命令 show variables like 'character%'。
2:将database server client connection results 的字符集改为gbk。具体做法为:set character_set_database=gbk;
3:将装数据的表的字符集改为gbk,将中文字段信息的字段字符集改为gbk。具体做法如下:
修改表的默认字符集:
alter table tb_name default character set character_name;
修改字段的默认字符集:
alter table tb_name change c_name character set character_name;
另:
修改数据库默认字符集:
alter database db_name character set character_name;
查看数据库编码:
show create database db_name;
查看表编码:
show create table tb_name;
查看列编码:
show full column from tb_name;
以上工作做完,编码问题应该就不大了。
问题二:php向数据库中存储有特殊字符的信息
默认php的get或post会为获取到的字符串中的特殊字符加上转义字符。但我的没有加,不造为什么,这时需要自己手动来加。
利用addslashes()函数。用法:
$content=$_POST["content"];
$content=addslashes($content);
解决。
问题三:php向html显示html代码。
若字符串中有html代码,并且要用文本的方式显示出来,则需要利用htmlspecialchars()函数。其中第一个参数是要转换的字符串。这里显示的是我自己项目的代码。
$content=htmlspecialchars($rest['content'],ENT_QUOTES,"gb2312");
解决。
问题四:php页面中引入css 或 js文件无法更新。
我更新了css文件之后,用开发者工具打开,发现当前页面仍然用着旧的css文件。上网搜了解决办法: Ctrl+F5 。该命令会让浏览器重新加载源文件。
解决。
如此看来我遇到的Bug开不算多,但着实心累。转载请说明出处,最好不要转载,谢谢。