前几天写PHP程序的时候,即使写了topmargin="0" ,但在页面最上面还是有一个空行,后来上网才发现那是因为在PHP中使用UTF-8编码的原因,解决方案就是把UTF-8编码中的BOM信息删除。从网上找到了一个PHP函数,可以删除UTF-8编码中的BOM,当然也可以使用UE等文本编辑器了,只是这个方式快些,代码如下:
<?php
//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除
$basedir="."; //修改此行为需要检测的目录,点表示当前目录
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。
//以下不用改动
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file))
echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
}
closedir($dh);
}
function checkBOM ($filename) {
global $auto;
$contents=file_get_contents($filename);
$charset[1]=substr($contents, 0, 1);
$charset[2]=substr($contents, 1, 1);
$charset[3]=substr($contents, 2, 1);
if (ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191) {
if ($auto==1) {
$rest=substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>BOM found, automatically removed.</font>");
} else {
return ("<font color=red>BOM found.</font>");
}
}else
return ("BOM Not Found.");
}
function rewrite ($filename, $data) {
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>
文件如附件。
分享到:
相关推荐
【18】支持带UTF-8标记/不带UTF-8标记的文件 每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。 【1】正则表达式应用——替换指定内容到行尾 原始文本如下面两行 abc aaaaa 123 abc 444 希望每次...
【18】支持带UTF-8标记/不带UTF-8标记的文件 每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。 【1】正则表达式应用——替换指定内容到行尾 原始文本如下面两行 abc aaaaa 123 abc 444 希望每次...
2. 文件编码应采用无BOM的UTF-8格式,保证跨平台兼容性。 3. 行结束符统一使用Unix LF(换行符),避免Windows和Unix系统间的差异。 4. 源文件按功能划分,每个文件只进行一类声明,如一个文件专门定义类,另一个...
- **编码格式**: 源文件中的PHP代码应采用无BOM(Byte Order Mark)的UTF-8编码格式。这是为了确保代码在不同平台间的一致性和兼容性。 - **行结束符**: 使用Unix LF(Line Feed)作为行结束符。这种格式在跨平台...
小知识:在字符编码方面,UTF-8编码每个中文字符占用3个字节,而GBK编码每个中文字符占用2个字节。在处理中文字符时,选择合适的编码方式非常重要,以防止乱码问题。在编写和保存PHP文件时,建议始终使用UTF-8无BOM...
- `mysql_query()` 用于执行SQL语句,如创建新的数据库,这里设置默认字符集为utf8,以支持多语言。 - `mysql_select_db()` 用于选择用户指定的数据库,确保后续操作在正确数据库上进行。 5. **数据表创建** - ...
- **UTF-8**: Unicode 的一种编码方式,可变长度,兼容 ASCII。 - **GBK**: 中文编码标准,主要用于简体中文。 #### 14. 字节码和机器码的区别? - **字节码**: Python 编译后的中间代码,可以跨平台运行。 - **...
charset=UTF-8 Content-Length: 1000 ... ``` **总结** HTTP协议是互联网通信的基础,通过请求和响应机制实现了客户端和服务器间的信息交换。理解HTTP的工作原理对于开发Web应用、调试问题和优化网络...
2. **编码**:使用不带 BOM 的 UTF-8 编码。 3. **声明和操作**:文件内只能定义类、函数或常量,或者执行产生副作用的操作,但不能同时进行两者。 4. **自动加载**:遵循 PSR-0 或 PSR-4 的命名空间和类的自动加载...
PHP+MYSQL(php5+mysql4.1以上版本,php4...8、修正UTF-8模板空行问题 9、多模板支持,默认下有IXNA和BXNA两套模板 剑气凌人,本程序不能用于任何商业用途或在本程序基本上开发进行商业用途,如需要,请与本人联系商业授权