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 的二进制编辑形式看的很清楚。

//////////////////
<base target="_self" /> 是网页默认的配置,要是改为
<base target="_blank" />,会直接作用于<a>...</a>,而且会影响链接代码里的 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 点击事件!

/////////////////////////////////
<select name="newgroupid">
<optgroup label="会员用户组">
<option value="10" selected>新手上路</option>
</optgroup>
<optgroup label="自定义用户组">
<option value="20">QQ游客</option>
</optgroup>
<optgroup label="自定义管理组">
<option value="16">实习版主</option>
<option value="17">网站编辑</option>
<option value="19">审核员</option>
</optgroup><optgroup label="系统用户组"><option value="2">超级版主</option>
<option value="3">版主</option>
<option value="4">禁止发言</option>
<option value="8">等待验证会员</option>
</optgroup></select>

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

你可能感兴趣的:(PHP)