lnmp1.2_php5.4如何解决htmlspecialchars默认UTF-8的问题
原来使用的是php5.2,升级php5.4后,因为php5.4的htmlspecialchars默认UTF-8,导致较老的程序无法截取gbk的字符或者输出为空的情况。网上有一些修改ext/standard/html.c的方法ext/standard/html.c
line 372
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_utf_8;
--->
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_8859_1;
解决htmlspecialchars默认UTF-8的问题。
http://www.9enjoy.com/linux-upgrade-php54/
看得不是很明白,似乎是直接编译php,然后将一些文件复制过去就可以了。
所以请问下军哥,不重新安装的情况下,如何修改htmlspecialchars默认UTF-8为gbk
谢谢
[ 本帖最后由 dyunok 于 2015-9-23 11:19 编辑 ] http://php.net/manual/en/function.htmlspecialchars.php
官网上该函数的说明,既然有默认值就可以更改默认值 查到比较多的方法,是安装前修改
/root/lnmp1.2-full/src/php-5.4.41/ext/standard/html.c
ext/standard/html.c
line 372
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_utf_8;
--->
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_8859_1;
然后编译安装,这个是安装方法http://www.9enjoy.com/linux-upgrade-php54/
下面是安装方法,但我不知lnmp的配置参数是什么样的
./configure --prefix=/usr/local/php5.4 --with-zlib --enable-bcmath --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-mysql --with-mysqli --with-pdo-mysql --enable-ftp --with-jpeg-dir --with-freetype-dir --with-png-dir --enable-fpm --with-fpm-user=www --with-fpm-group=www
make ZEND_EXTRA_LIBS='-liconv'
make install
但我不想重新安装整个服务器,有没有简便的方法可以直接改哪个地方就可以了?
或者仅仅针对php仍按原来的方式及参数安装(配置参数不清楚),但lnmp不知如何只安装php
请军哥给个帮助,谢谢!
[ 本帖最后由 dyunok 于 2015-9-23 17:51 编辑 ] lnmp1.2没法在安装前修改源码,修改了也会重新删除解压
你要按他们的方法修改就只能按别人的方法自己手动编译安装
我看网上很多都是修改程序而不是修改php源码 php 5.45.5 这个必需重新安装PHP才能解决。
php5.6 可通过修改 php.ini 中的default_charset 值。 如改为 default_charset = cs_8859_15
你可以修改 升级php的脚本 ,在解压后就加入替换脚本,也就是在 cd php-$php_version/ 这一行下加入。
sed -i 's/return cs_utf_8;/return cs_8859_15;/g' ext/standard/html.c
注:也可改为cs_8859_15,GBK/UTF8 都支持。 但是如果php文件未指定编码,有时会出现乱码(如UC),不过一般程序文件头都设定了编码的。
加入这一行后,执行升级php 即可。
[ 本帖最后由 id886 于 2015-9-24 09:19 编辑 ] 谢谢两位,已经直接升级php5.4至5.6.13,修改了默认字符值。
升级后,感觉快了很多。php5.6不错呵。但尚不知是否还有其他问题。
但升级后,比如使用原来的搜索,旧有的上传程序,仍然存在无法将汉字保存在输入框的问题,但数字或英文就不会有这种情况。
看来,只能考虑修改程序了。
页:
[1]