存档

  • php读取mysql中文乱码问题

    php中文乱码问题几乎是每一个php初学者都要遇到的问题,php中文乱码问题最典型的就是php读取mysql或向mysql写入数据的时候出现的中文乱码问题。出现php中文乱码问题的时候一般可以通过一下两种方法解决: (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值。 如 default-character-set = utf8 character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart (2)发送查询query 查询前发送SET NAMES ‘utf8′语句。 mysql_query(“set names utf8″); 之后就可以正常的发送自己的查询语句了。 通过上面的两个方法一般就可以解决php读取mysql中文乱码的问题

    661 阅读 | 没有评论
    2009年11月22日 | 归档于 LAMP
    标签: LAMP, MySQL
  • php 中文乱码问题原因分析和解决方法

    php中文乱码问题对于php初学者来说确实是个令人头疼的问题。出现中文乱码的根本原因是编码不一致所造成的。 具体来说在php中一般涉及到三个地方的编码,一是php文件的编码,二是html header 头的编码,三是数据库的编码。在php中这三者的编码如果不一致就会出现中文乱码问题。 (1)php文件的编码是指php文件保存时选择的编码格式,一般选择utf-8或者gbk编码格式,如果想改变编码的格式,用ultraedit打开然后在另存为你想要用的编码格式即可。 (2)hmtl的编码即在header头的meta标签中指明的编码格式: <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″> (3)数据库也有自己的编码,如果从数据库取出的数据编码和上面的两个地方的编码不一致,此时也会出现中文乱码问题。我们可以通过修改mysql配置文件my.ini或my.cnf来改变数据库的编码。在文件中查找default-character-set,如果能查到则修改成自己需要的编码,如果查找不到可以自己添加上default-character-set=‘你需要的编码格式’;如果遇到从数据库里取出数据乱码的时候,通常是通过在建立连接之后发送set names ‘你需要的编码’ query语句(示例:mysql_query(“set names utf-8″))的方法来解决这一问题。 我们在平时遇到的中文乱码问题,主要是通过修改这三个地方的编码来解决。首先分析乱码是因为这三者中的那个编码和其他的不一致造成的,然后去修改他的编码。建议在进行开发之前把数据库、php文件、html charset三者的编码设置成一致的utf-8。

    746 阅读 | 没有评论
    2009年11月20日 | 归档于 LAMP
    标签: LAMP
  • php中的字符串(single quote,double quote,heredoc,nowdoc)(二)

    在php中的字符串(single quote,double quote,heredoc,nowdoc)(一)我们简单总结了php中单引号、双引号、heredoc、nowdoc的用法,这篇文章简单总结一下 总结说明: 1)  heredoc 和双引号差不多,只是在deredoc中双引号不用转义 2)  Nowdoc 和单引号的作用差不多,在nowdoc中单引号不用转义 3) Nowdoc 从php 5.3才开始支持。 4) heredoc是输出html的好工具 例如 因为在html中可能混有单引号和双引号,这是采用heredoc(或者nowdoc)定义就不用做任何转义,用其他两种方式还需要做转义处理。 5)单引号和双引号在处理字符串中变量的差别 $b=3; echo $a=”$b=5″;//output: 3=5 echo $c=’$b=5′;//output: $b=5 在双引号中php会去检查有没有相应的变量,这是php对字符串贪婪模式的体现,所以如果双引号中无变量的时候,最好用单引号,可以节省一下资源,提高效率。 这一点也引出了{}的用途。 示例: $friut=’apple’; //我们想要的输出是这样的apples are green;。这只是个示例不一定恰当 echo ” $friuts are green;”;//output: are green; echo “{$friut}s are green;”//output: apples are green;

    598 阅读 | 没有评论
    2009年7月3日 | 归档于 LAMP
    标签: LAMP
  • php中的字符串(single quote,double quote,heredoc,nowdoc)(一)

    本文大部分出自php在线手册相关页面,少量内容为个人经验(如有错误欢迎指正),你也可以参看此页面获得更详细的内容 简单介绍: 一、关于php中的字符串 Php中的字符串和c语言中的类似,是一个字符数组,这个数组的大小是没有限制,只要内存允许,你可以存足够多的字符! 二、单引号 单引号是定义字符串的最简单形式。在单引号内只有单引号(single quote )和反斜线(back slash)需要转义。 实例: echo $a=’Here is ‘webfuns.cn”; //error echo $aa=’Here is \’webfuns.cn’\'; //ok echo $b=’ back slash is \’; //error echo $bb=’back slash is \\’; //ok 三、双引号 双引号相对于单引号有更多需要转义的字符,列表如下: 转义字符 含义 \n 换行符(LF or 0x0A (10) in ASCII) \r 回车 (CR or 0x0D (13) in ASCII) \t 水平制表符 (HT or 0×09 (9) in ASCII) \v 垂直制表符(VT or 0x0B (11) in ASCII) (since PHP 5.2.5) \f 换页符 (FF or 0x0C (12) in ASCII) (since PHP 5.2.5) \\ 反斜线\ \$ 美元符号$ \” 双引号 \[0-7]{1,3} 正则表达式中匹配八进制字符 [...]

    431 阅读 | 没有评论
    2009年7月3日 | 归档于 LAMP
    标签: LAMP
  • php中的全局变量($_POST,$_GET,······)关系整理

    总结: 1)php中的全局变量主要分为系统自动全局变量和用户自定义的全局变量。系统自动全局变量包括:$_POST、 $_GET、$_COOKIE、$SESSION等(图示中标为同一颜色的), 用户自定义的全局变量例如:global $a;此处$a即为全局变量。 2)关于全局变量的访问: #)所有的全局变量都可以通过$GLOBALS[$name]访问。 #)$HTTP_*_VARS是旧式的访问方法,这要保证register_long_array是打开的。但是这种方式无法访问$_REQUEST变量和用户定义的变量。图示中有箭头指向$HTTP_*_VARS就表示能够访问。 #)对于不同类的变量可以用不同的方法访问,例如cookie类变量可以用$_COOKIE[$name]访问。 #)$_ENV $_SERVER $_GET这些变量有些特殊。比如$_ENV[$key],也可以通过$GLOBALS[$key]访问。 #)$_REQUEST变量包含$_GET $_POST $_COOKIE的变量。就是$_GET[$key],可以通过$_REQUEST[$key]访问。 实例: 比如我们要访问通过url传过来的变量:http://blog.webfuns.net?id=tomheng 以下几种方式都可以访问到这些变量: $_GET['id']=$_REQUEST['id']=$GLOBLAS['_GET'][''id'] 如果register_long_array是打开的:$_HTTP_GET_VARS['id']也可以访问(不安全,一般不适用这种方式) 如果register_global 也打开的换,$id也可以访问(不安全,一般不适用这种方式) 唠叨: 这样一整理可能会更容易理解一下,其实在实践中全局变量没那么复杂,但是这样整理清楚他们的关系之后在一些细节问题上还是有帮助的。

    580 阅读 | 没有评论
    2009年6月11日 | 归档于 LAMP
    标签: LAMP
文章标签 ‘LAMP’