支持中文的问题??
我用的是windows2000+apache2+php4+mysql
但是我在php中写的中文运行是都成了乱码,请问如何解决?
推荐阅读
adddefaultcharset gb2312
在apache的配置文件httpd.conf中:
adddefaultcharset gb2312
(原来是的adddefaultcharset iso-****)
改完后重起计算机.(有时只重起apache可以,有时不行).
注释掉httpd.conf中的adddefaultcharset ...一句。
apache的httpd.conf中找到
adddefaultcharset ××××
改成 adddefaultcharset gb2312
php的执行效率是有目共睹的,这也是我喜欢它的原因之一,和它称为绝妙搭档的mysql以及apache想融合,不能不惊叹其效率了。php更新也很快,这里列举了目前最新版本php4.3.2rc4,和最新版本的mysql4.0.13的安装过程。
php的安装文件可以直接到 http://www.php.net/ 下载,获得for win32的.zip包
mysql的安装文件可以直接到 http://www.mysql.com/ 下载,获得for win32的.zip包
另外如果想体验apache和php的配合效果而要放弃iis的话,请到 http://www.apache.org/ 下载最新的for win31的.msi安装包,目前最新版本是2.0.45。
另外,可以下载zend optimizer来对php进行加速。具体可以访问 http://www.zend.com/
<1>安装配置php
1.解压缩php压缩包到c:php。
2.复制c:php目录下的php4ts.dll及c:phpdlls目录下的所有文件到windows的系统文件夹里,文件夹视windows版本的不同而不同
如果是windows 9x/me 则为c:windowssystem
如果是windows nt/2000 则为c:winntsystem32
如果是windows xp/server2003 则为c:windowssystem32
其中c:为你现在所使用的操作系统的系统盘,如果你目前操作系统不是安装在c:windows下,请相应做出修改。
复制php.ini-dist到c:windows(xp/2003/9x/me)或c:winnt(2000/nt)下,并将其改名为php.ini。用记事本打开,修改一下信息:
搜索extension_dir = ./ 这行,并将其路径指到你的php目录下的extensions目录,比如:
extension_dir = c:phpextensions
如若想支持更多模块,请接下面去做,如果不想的话,直接保存php.ini文件即可.
php所支持模块很多,不过有些dll不是免费的,所以没有随php的压缩包一起发布,不过dlls文件夹里带的就非常多了,刚才我们已经把它们复制到system32文件夹下了,现在我们测试看它支持多少模块。以下是我测试的结果,仅供参考,如果安装完毕后,弹出不支持xxx.dll模块的话,直接将前面分号加上去就可以了,搜索:
;windows extensions
;note that mysql and odbc support is now built in, so no dll is needed for it.
;
下面都用分号在前面注释掉了支持的扩展模块,如果你想php支持某个模块,请将前面的“;”去掉即可,下面是我测试后的结果,一般按照下面那样去掉注释后没什么问题的:
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
extension=php_exif.dll
extension=php_fdf.dll
extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
extension=php_pgsql.dll
;extension=php_printer.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll
修改完成后,保存php.ini,到此完成php的安装和配置。
<2>mysql的安装
mysql相对来说是比较独立的,这个数据库很小,不能直接对它进行操作,不像access或者sql2000那么直观,不过目前已经有很多软件可以很好的操作它的,比如phpmyadmin,mysqlcc。这些软件可以到 http://www.mysql.com/ 上面下载获得,这里不详细说明。
下载获得mysql的for win32安装包后,用winzip打开,直接运行setup.exe,需要注意的是选择一个安装路径,当然,安装路径可以任意,不过我建议将它和php安装在一起,选择c:mysql目录。安装完成后mysql也就完成了。至于设置用户和密码,可以使用上面提到的两个软件进行管理。这里不继续描述,默认的用户名是root,密码为空。
一般装完mysql后会自动启动服务,如果没有启动的话,请运行c:mysqlbinmysqld-nt.exe
配置conf目录下的httpd.conf文件
#安装apache模块方式添加:
loadmodule php4_module c:/php/sapi/php4apache2.dll
addtype application/x-httpd-php .php4
scriptalias /php4/ "c:/php/"
action application/x-httpd-php4 "/php4/php.exe"
addtype application/x-httpd-php4 .php
#增加默认启动文档:
directoryindex index.html增加为:
directoryindex index.html index.htm index.php index.php3
#让apache2默认中文显示
#添加:
addlanguage zh-cn .cn
defaultlanguage zh-cn
#修改:
adddefaultcharset iso-8859-1 ---> adddefaultcharset gb2312
###########################################
[zend]
在下面可以看到:
zend_optimizer.optimization_level=*
这行,
将=后面数值改为1023,也就是将这行改为
zend_optimizer.optimization_level=1023
###################################################################
alias /icons/ "d:/apache/icons/";虚拟目录名
<directory "d:/apache/icons">;显示全部目录
options indexes multiviews
allowoverride none
order allow,deny
allow from all
</directory>
<6>测试:
用记事本新建个文件,写下下面几行,保存到c:apache2htdocs目录下,这个目录就是你的站点跟目录,命名为phpinfo.php.然后在浏览器中输入http://localhost/phpinfo.php就可以看到想尽的关于php的信息了。
code
<?php
phpinfo();
?>
您需要注意在您保存文件时,文件的后缀名应该为 .php。当您保存文件时,系统会让你指定文件的文件名,这时请将您的文件名加上引号。或者,您也可以点击保存对话框中的“保存类型”下拉菜单,并将设置改为“所有文件”。这样您在输入文件名的时候就不用加引号了。
上面一段话摘自《php中文手册》,更详细的安装资料,请到 http://www.php.net/docs.php 下载这个中文手册,里面有各种不同系统的详细安装,不过不是很直观而以,一些优化也没有写出来:)
下面我给出几个要用到的软件的下载地址:
php
http://www.php.net
mysql4.0.13
http://www.mysql.com
apache
http://download.wz.zj.cn/download.asp?cat1=nettools&cat2=homepage&id=3237
zend optimizer:
http://www.phpe.net/?n=downnow&a=7&l=1
另,php4.3.2rc4中包含了pear包,php4.3.1中是没有的,如果你下载的压缩包里有的话,就在php.ini中设置include路径,找到如下两行:
; windows: "path1;path2"
;include_path = ".:/php/includes"
修改为:
; windows: "path1;path2"
include_path = "c:phppear"
保存即可,这个是php的包含文件路径,可以设置多个,用";"格开。
#################################################
注意!!!!!
c:盘必须是32位的,ntfs是不行的,我测试过!php是不能安在ntfs的盘中的
你可以找个不是ntfs的区,比如d:盘e:盘f:盘等盘
在iss主目录->配置->添加->php中的sapi/php4isapi.dll
_______________________我用的平台win2003+php4.23,也可以用apache+php4.23速度快
……………………………………………………………
还有web服务扩展,把isapi打开!!!!!!!!!!!!!_______________________________________________
同时希望对喜欢php的朋友有所帮助.
转载请和我联系:shuiaaa521@sina.com
----------------------------
在apache的配置文件httpd.conf中:
adddefaultcharset gb2312
(原来是的adddefaultcharset iso-****)
改完后重起计算机.(有时只重起apache可以,有时不行).
----------------------------
不用重启计算机,清除一下浏览器的缓存,重启一下apache就可以
关于是否添加adddefaultcharset gb2312的利弊已经讨论过了,这里再说一次
adddefaultcharset gb2312 这种方法固然可以解决问题,但是会带来新的问题
上述方法固定了html的编码,就不能在html头部的meta来控制charset.
如果注释掉adddefaultcharset 可以用meta来定义charset,灵活性更高。
所以推荐的方法是打开apache的配置文件httpd.conf
查找adddefaultcharset iso,找到以后删除此行
清除浏览器缓存,关掉浏览器,重启apache即可
我觉得最好的解决方法是通过脚本层次,而不是web server。当然在apache的配置中加入addlanguage zh-cn .cn 是必要的。
我在*.php的首部通常会加上
header("expires: mon, 11 dec 1978 00:00:00 gmt");
header("last-modified: ".gmdate("d, d m y h:i:s")." gmt");
header("cache-control: no-store, no-cache, must-revalidate");
header("pragma: no-cache");
header("content-type: text/html; charset=gb2312");


讨论区