分类目录
近期评论
功能
Category Archives: Programming
Apache DefaultCharSet导致网页乱码
最近做的一个项目,把demo传到客户服务器上,有些模块变成了乱码,设置所有的JS运行都出了问题。而在我本机环境、手上另外一台服务器上测试均无问题。 那么,先明确导致乱码的核心问题:编码不一致!。 呃,如果是个人兴趣问题,打了脑残体之类的文字,则不在本文讨论范围。 1、网页的meta信息。例如: <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> 2、文件保存时的编码选择。例如: 3、程序通过header()函数指定编码。例如php: header(“Content-Type:text/html; charset=utf-8″); 4、客户端浏览器的编码选择 5、服务器端的WEB服务器编码设置,如Apache、IIS。 上述4个地方,有任何一个编码不一致,都可能导致乱码。例如网页的meta你设置的是utf-8,而保存时就选择gbk编码。再或者你网页是utf-8编码,你在浏览器里选择gbk编码查看,那么…可以尝试一下 今天我遇到的问题呢?首先可以确保的是meta和文件保存时的编码是一致的,均为utf-8。但当我用浏览器访问出问题的网页时,浏览器自动选择了gbk编码,乱码!当我把浏览器编码切换到utf-8编码时,网页正常。 抓取网页的header信息。发现utf-8的网页被服务器发送回来竟然变成了gbk 如此看来一定是apache的设置问题咯。 打开apache的配置文件,httpd.conf。 查找:defaultcharst 果然有这么一行 AddDefaultCharset GB2312。 注释掉,保存,重启apache。 一切恢复正常。 小结: 1、如果 apache 设置了 defaultcharset ,并且程序里没有使用header()指定编码。那么最终输出以apache的AddDefaultCharse为主。 2、除非特别必要,否者不要设置apache的AddDefaultCharse。
PHP6测试版发布
去年在巴黎举行的PHP开发者大会中,PHP6开发的消息开始流传开来,于PHP大会讨论的PHP6,将有很大幅度的变化,但这只是草案阶段,并不代表所有会议的机率都会随着PHP6的发布而包含记录中所有的变更也就是说,在发布PHP6之前,还是会有异动的情形,但是可以确定的是下面所列的数项变化,将会随着PHP6一同面世。赶快来看看这些新特性吧。 1.支持Unicode 支持Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。另外一点,PHP也可以在.ini文件中设定是否开启支持Unicode,决定权在你自己,这是一个不错的点子,关掉Unicode的支持,PHP的性能并不会有大幅度的提升,主要的影响在于需要引用字符串的函数。 2.Register Globals 将被移除 这是一个重要的决定,说多新进的PHP开发者会觉得Register Globals满方便的,但是却忽略了Register Globals会带来程序上安全性的隐患,大多数的主机上此项功能是关闭的,印象中从PHP4.3.x版开始时,此项默认设置值即是关闭状态,PHP6正式移除Register Globals也代表着如果程序是由PHP3时代的产物,将完全无法使用,除了改写一途外,别无他法。相信现在的PHP世界里,仍使用PHP3时代所产生的程序应该是少之又少。 3.Magic Quotes 将消失 Magic Quotes主要是自动转义需要转义的字符,此项功能移除叶符合大多数PHP开发者的心声。 4.Safe Mode 取消 老实说,这个模式不知道哪里不好,取消就取消吧,反正也用不到。 5.’var’ 别名为 ‘public’ 在类中的var声明变成public的别名,相信是为了兼容PHP5而作的决定,PHP6现在也可以称作为OO语言了。 6.通过引用返回将出错 现在透过引用返回编译器将会报错 例如$a =& new b()、function &c(),OO语言默认就是引用,所以不需要再使用&了。 7.zend.ze1 compatbility mode 将被移去 Zend.ze1相容模式将被移去,PHP5是为兼容旧有PHP4,所以在.ini中可选择是否开启相容模式,原因在于PHP5使用的是第二代解析引擎,但是相容模式并不是百分之百能解析PHP4语法,所以旧时代的产物,移除。 8.Freetype 1 and GD 1 … Continue reading
解决方案:phpMyAdmin无法登陆,#1251 Client does not support authentication protocol
今天遭遇phpMyAdmin无法登陆,提示: #1251 – Client does not support authentication protocol requested by server; consider upgrading MySQL client 如图: 用户名,密码,权限均正确,为何登录不了呢? 根据提示看来是认证有些改变。 mysql版本:5.0.45 MySQL client version: 4.0.24 “SELECT * FROM mysql.user” 看看,密码有长有短,还有*号。 如何解决呢?其实只需要对你创建的用户再执行下面这条 update mysql.user SET Password = OLD_PASSWORD(‘your_password’) where Host = ‘%’ … Continue reading
图文详解:配置Apache+Mysql+PHP开发环境
尽管配置PHP开发环境很简单,但是对于一些刚入门或者尚未入门的同学来说,仍然是件“痛苦”的事情。 如果你想”偷懒”,这里有满足你的办法。 Windows环境下,配置apache+mysql+php,最简单的方法莫过于使用一些打包好的套件。 个人推荐:WAMP。 整个安装过程很简单: 1、下载最新的安装包(官方网站,SourceForge),当前版本WampServer 2.0a,集成了apache 2.2.6、 PHP 5.2.5 + PECL、SQLitemanager、MySQL 5.0.45、Phpmyadmin。 2、运行安装包。 a)首先会弹出一个“重要提示”,告诉你,“不要从wamp5.1.x版本,如果之前安装过wamp5.1.x,那么安装新版本之前,请保存数据,卸载wamp5并删除wamp目录”。如果是全新安装的话,直接点“是”即可。 b)弹出安装向导。不用理会,“next”即可
解决方案:mysql错误 1067
安装完mysql经常会遭遇“无法启动mysql服务,错误 1067:进程意外终止。” 如图: 这里有一个很简单的解决方案。 1、查找 c:\windows\ 下的 my.ini 文件,如果没有,就自己创建一个。 2、编辑内容,添加下面几行 [WinMySQLAdmin] Server=E:/mysql/bin/mysqld-nt.exe [mysqld] #set basedir to the installationpath basedir=E:/mysql datadir=E:/mysql/data 3、保存,重启mysql即可。 注意:路径对应你自己的mysql安装目录。我是安装在e:\mysql