Home >php教程 >php手册 >PHP 编程一些及其细微的细节问题

PHP 编程一些及其细微的细节问题

WBOY
WBOYOriginal
2016-06-06 19:57:11928browse

///////////////// Windows下,记事本会把“utf-8 编码,无 bom”的文件变成“带bom”,也就是给文件前加三个字节“EF BB BF”。因为好像记事本只能保存“带bom”的 UTF-8 的文件。切记! 经常会出现在:用记事本修改 PHP 的 config.inc.php 配置文件的时候

    /////////////////
    Windows下,记事本会把“utf-8 编码,无 bom”的文件变成“带bom”,也就是给文件前加三个字节“EF BB BF”。因为好像记事本只能保存“带bom”的 UTF-8 的文件。切记!
    经常会出现在:用记事本修改 PHP 的 config.inc.php 配置文件的时候。这时,因为config.inc.php一般包含在PHP文件的头部,所以 PHP 文件如果涉及 session 或 header() 函数,麻烦就来了。因为 session 或 header()之前不允许有 html 脚本,包括 echo 输出,而“EF BB BF”字符串虽然人眼不可见,但是 PHP 把它们当做 html 字符了。

    /////////////////
    UltraEdit 编辑器,能自动识别编辑的字符串是英文(单字节编码),还是中文(多字节编码)。而且 UltraEdit 编辑器以不定长编码保存文本。
    比如,编辑的文本全部是英文,即使强制保存为 UTF-8,在 Windows 下也会自动保存为普通 DOS 格式的单字节文本文件。这时输入汉字,汉字还是双字节编码。
    只有再次另存为 UTF-8编码,汉字才会变为 UTF-8 的三字节编码。而英文一直都会是单字节编码。这个通过 UE 的二进制编辑形式看的很清楚。

    //////////////////
    是网页默认的配置,要是改为
    ,会直接作用于...,而且会影响链接代码里的 onclick="" 函数。

    //////////////////
    非常奇怪的问题:

    function $F(id)
    {
      return document.getElementById(id);
    }

    $F(id) 是取 input 的 id 值的,在本地apache服务器上可以取 name 或 id 的值。
    但是,代码上传到远程服务器上后,只能取 id 的值。(同一个浏览器!)

    本地服务器和远程服务器有差别??

    //////////////////////////////
    MySQL 的 MyISAM 引擎的数据库,冷恢复后,如果有异常,应该把 MySQL 服务重新启动一下。
    所以,MySQL 的脱机备份、恢复,最好在 MySQL 服务关闭后操作。

    //////////////////////////////
    地址里带参数,特别如果是汉字,需要  ?c=urlencode(...),然后 urldecode($_GET['c'])
    注意:UTF-8编码,在 IIS 下可以,在 Windows+apache下不行??
    还和IE的设置有关:(IE8)高级--发送UTF-8 URL。

    //////////////////////////////
    session[] 在后端用 ajax 调用生成时,如果立即调用session,可能会因为没有被生成:没有产生会话文件,而调用失败。

    //////////////////////////////
    语句 header("Location:xxx.php"); 转向之后,应该还需要执行 exit 语句。
    否则,还会执行到本页尾部(虽然眼睛看不到)。即:
    header("Location:xxx.php");
    exit;

    //////////////////////////////
    同一个网站里,不要让网页重名。否则会因为在浏览器端有缓存,而错乱。 IE 和 chorom 浏览器都出现过该问题。

    //////////////////////////////
    smarty 模版文件不能重名。否则会因为smarty在服务端有缓存,而导致错乱。

    ////////////////////////////////////
    一个连接的 href="javascript:hanshu();"  和 jQuery 的click事件,有时可以同时被触发,但有时只触发一个事件,不稳定。
    所以,不要在一个链接里同时使用 js 函数和 jQuery 点击事件!

    /////////////////////////////////
   

    /////////////////////////////////////////////////
    MySQL字符串型字段长度和汉字个数:
    UTF8编码的字段,字段长度和保存的汉字个数相同。比如字段长度为6,就能保存6个汉字,而不是3个。

    张庆(网眼) ,微博:http://t.qq.com/zhangking
    来自“网眼视界”:http://blog.why100000.com
    “十万个为什么”电脑学习网:http://www.why100000.com
     2013-2-6

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn