多数大学生出来选择的工作和专业无关
首页 > 专业知识

探讨PHP编码转换函数应用技巧

时间:2018-09-01 18:11:55 [来源]:郑州PHP培训学校

   探讨PHP编码转换函数应用技巧

  在PHP语言中mb_convert_encoding是一个PHP编码转换函数,可以帮助我们用来实现对多字节字符串编码的转换。下面将会为大家进行详细介绍。
  在PHP中有数量庞大的函数来支持我们的需求应用。下面介绍的这个函数就是有关PHP编码转换函数。希望对大家有所帮助。mb_convert_encoding 函数为PHP内部多字节字符串编码转换函数。
  可以在有需要的使用场合(如:解决在GB2312编码环境下使用Ajax产生的中文字乱码的问题)方便进行编码转换,以解决网页乱码的问题,使用非常方便,效率非常高,几乎支持所有编码。PHP 4 >= 4.0.6、PHP 5 版本支持。
  PHP编码转换函数原型:
  /**
  * 多字节字符串编码转换函数
  *
  * @param string str 需要进行编码转换的字符串* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
  * @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码* @return string
  string mb_convert_encoding ( string
  str, string to_encoding [, mixed from_encoding] )PHP编码转换函数使用举例:
  1、把 GBK 编码字串转换成 UTF-8 编码字串
  < ?PHP
  header("content-Type: text/html;
  charset=Utf-8");
  echo mb_convert_encoding("
  你是我的好朋友", "UTF-8", "GBK");
  ?>
  2、把 UTF-8 编码字串转换成 GB2312 编码字串// 注意将此文件存盘成 utf-8
  编码格式文件再测试
  < ?PHP
  header("content-Type: text/html;
  charset=gb2312");
  echo mb_convert_encoding("
  你是我的好朋友", "gb312", "utf-8");
  ?>
  3、对整个页面进行转换
  该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用 NCR(Numeric character reference,如“汉字”将转换成“&#27721;&#23383;”这种形式)来表示,这样的编码在任意编码环境下页面都能正 常显示。
  在PHP文件的头部加上下面三行代码:
  mb_internal_encoding("gb2312");
  // 这里的gb2312是你网站原来的编码
  mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展。
  如果没有没有开启PHP的mbstring扩展,则需要做如下设置,让PHP支持该扩展。
  1、windows 服务器环境
  编辑 PHP.ini 文件,将; extension=PHP_mbstring.dll 前面的 ; 去掉,重启网页服务器。
  2、Linux服务器环境
  在编译配置时加入 --enable-mbstring=cn 编译参数,再进行PHP的编译安装。
  结束语:
  如果大家在使用PHP编码转换函数的过程中,还有什么无法明白的地方,可以参看《PHP手册》。
  介绍几种PHP站点性能的优化方法
  PHP站点性能的提高可以通过对object code缓存的设置;模板系统的操作;分布式对象缓存系统的设置;一些PHP变量的设置等方法来实现。
  如果能够合理运用PHP语言来为我们创建网站,可以获得许多好处。在这篇文章中我们将会了解到有关PHP站点性能提高的相关方法。
  PHP error_reporting设置错误报告级别
  1:object code缓存
  每次发生一个请求的时候,都需要把你对象代码重新编译一遍,如果你使用了缓存,那么就避免了重新编译,这样可以使得你的脚本执行得更快,提高PHP站点性能。
  有以下的包可以使用:
  A) Ioncube:http://www.ioncube.com/
  B) Zend Encoder: http://www.zend.com/products/zend_safeguardC) Turckl MMCache: http://freshmeat.net/projects/turck-mmcache/2:模板系统
  模板系统提供了另外一种不同的缓存形式。内容缓存。当你有很多静态数据和很多页面不需要reload的时候,模板系统是很有帮助的。缓存系统也将code和html分开,不仅使得代码的执行时间改善,也让你将来的维护变得容易,提高了PHP站点性能。
  A) Smarty Templates: http://smarty.PHP.net/B) Pear Templates: http://pear.PHP.net/package/html_template_it/redirectedC) PHP savant: http://PHPsavant.com/yawiki/3:分布式对象缓存系统
  使用得最普遍的是memcached
  这种系统把数据库数据放在一个很大的内存池里,这样使得你的网站跑得很快,实现了PHP站点性能的优化。
  4:设置一些PHP变量
  variables_order = ‘GPC’
  register_argc_argv = ‘Off’
  register_globals = ‘Off’
  always_populate_raw_post_data = ‘Off’
  magic_quotes_gpc = ‘Off’
  5: Output Compression
  几乎所有的浏览器都支持Gzip的压缩方式,gzip可以降低80%的输出,付出的代价是大概增加了10%的cpu计算量。但是赚到的是不仅占用的带宽减少了,而且你的页面加载会变得很快,优化了你的PHP站点性能。
  你可以在PHP.ini中开启它
  zlib.output_compression = On
  zlib.output_compression_level = (level)(level可能是1-9之间的数字,你可以设置不同的数字使得他适合你的站点。)如果你使用apache,你也可以激活mod_gzip模块,他是高度可定制的。
  6:其他
  当你使用数据库的时候,只取那些你需要使用的数据,避免使用select * from mytable这样的句子。
  另外使用索引也是对PHP站点性能的优化很有帮助的。
  具体分析PHP获得所有数据库方法
  PHP获得所有数据库的实现,可以通过首先使用mysql_list_dbs()函数来查询系统中的数据库数量,然后再来通过 一系列操作进行最终的功能实现。
  在PHP庞大的函数库中,有一类函数是专门用来处理数据库的函数。那么,如何运用这些函数来获得所有数据库信息么?下面就来一起看看PHP获得所有数据库的相关实现方法。
  要查询系统中都存在哪些数据库,可使用mysql_list_dbs()函数,其语法格式如下:
  resource mysql_list_dbs ([ resource $link_identifier ] )mysql_list_dbs()函数返回的结果集中包含了MySQL服务器中所有的数据库,PHP获得所有数据库示例如下:
  < ?php
  $connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
  $db_list = mysql_list_dbs($connection);
  while ($row = mysql_fetch_object
  ($db_list)) {
  echo $row->Database . "< br>";
  echo "< hr>";
  }
  mysql_close($connection);
  ?>
  在上面PHP获得所有数据库代码中,循环输出结果集时用到了mysql_fetch_object()函数,mysql_fetch_object()函数和mysql_fetch_array()函数用法类似,不同的是 mysql_fetch_array()函数返回一个数组,而mysql_fetch_object()函数则返回一个对象。 mysql_fetch_object()函数的语法格式如下:
  object mysql_fetch_object ( resource $result )

上一篇:如何正确实现PHP生成唯一标识符

下一篇:PHP软件中的十个高级技巧有哪些