在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。
去掉bom头的办法,简单的是下面两种:
1、editplus去BOM头的方法
编辑器调整为UTF8编码格式后,保存的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识别这个文件是否是以UTF8编码。 运行Editplus,点击工具,选择首选项,选中文件,UTF-8标识选择 总是删除签名,
然后对PHP文件编辑和保存后的PHP文件就是不带BOM的了。
2、ultraedit去除bom头办法
打开文件后,另存为选项的编码格式里选择(utf-8 无bom头),确定就ok了
怎么样,去掉bom头很简单吧
3、专门写的去除文件BOM头的程序,现在公布出来,可以放在项目根目录,然后运行。
Php代码,请使用工具条复制代码
view sourceprintabout
01
<?php
02
if (isset($_GET['dir'])){ //设置文件目录
03
$basedir=$_GET['dir']
04
}else{
05
$basedir = '.'
06
}
07
$auto = 1
08
checkdir($basedir)
09
function checkdir($basedir){
10
if ($dh = opendir($basedir)) {
11
while (($file = readdir($dh)) !== false) {
12
if ($file != '.' &&$file != '..'){
13
if (!is_dir($basedir."/".$file)) {
14
echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>"
15
}else{
16
$dirname = $basedir."/".$file
17
checkdir($dirname)
18
}
19
}
20
}
21
closedir($dh)
22
}
23
}
24
function checkBOM ($filename) {
25
global $auto
26
$contents = file_get_contents($filename)
27
$charset[1] = substr($contents, 0, 1)
28
$charset[2] = substr($contents, 1, 1)
29
$charset[3] = substr($contents, 2, 1)
30
if (ord($charset[1]) == 239 &&ord($charset[2]) == 187 &&ord($charset[3]) == 191) {
31
if ($auto == 1) {
32
$rest = substr($contents, 3)
33
rewrite ($filename, $rest)
34
return ("<font color=red>BOM found, automatically removed._<a href=http://blog.csdn.net/s394032675>csdn.net</a></font>")
35
} else {
36
return ("<font color=red>BOM found.</font>")
37
}
38
}
39
else return ("BOM Not Found.")
40
}
41
function rewrite ($filename, $data) {
42
$filenum = fopen($filename, "w")
43
flock($filenum, LOCK_EX)
44
fwrite($filenum, $data)
45
fclose($filenum)
46
}
47
?>
好了,以上就是去掉bom头的一些方法,其实做php的时候不建议用记事本的,最好是用一些专业的ide,这样能防止以上的一些小错误,来提高我们的编码效率和质量!
Java script 是一种脚本语言 用来完成网页上一些特定的功能,是一种弱类型语言。它最初的设计是为了检验HTML表单输入的正确性。html用来表达网页的结构structure,javscript用来表现网页的行为。
javascript是脚本语言,可以操作html页面中的元素,也就是经常听到的DOM,也可以写一些简单的算法等。
html,js,css用得好,就可以写出语义性强、交互性强并且美观的页面。
希望能帮到你。
在学习javascript中学到了BOM和DOM,只看外表,他们就B和D的区别。他们到底是什么,有什么区别呢?
BOM的全称是BrowserObjectModel,中文名是浏览器对象模型。允许通过BOM访问和操控浏览器窗口,研发者通过使用BOM,可移动窗口、更改状态栏文本、执行其它不与页面内容发生直接联系的操作。BOM是JavaScript应用中唯一没有相关标准的部分,这是BOM真正独特且经常出现问题的所在。 BOM主要处理浏览器窗口与框架,浏览器特有的JavaScript扩展都被认作是BOM的一部分。由于BOM没有相关标准,每个浏览器都有其自己对BOM的实现方式。BOM有窗口对象、导航对象等一些实际上已经默认的标准,但对于这些对象和其它一些对象,每个浏览器都定义了自己的属性和方式。
BOM的对象:window对象是其核心对象,表示整个浏览器窗口。document对象是BOM的对象,但他又是DOM中的对象。
DOM的全称是Document Object Model,中文名是文档对象模型。DOM不是java或者javascript,是一组用来描述脚本怎样与结构化文档进行交互和访问的Web标准.描述了处理网页内容的方法和接口,是HTML和XML的API,DOM把整个页面规划成由节点层级构成的文档。DOM的优势主要表现在:易用性强,使用DOM时,将把所有的XML文档信息都存于内存中,并且遍历简单,支持XPath,增强了易用性。DOM的缺点主要表现在:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎不可能使用。另外效率低还表现在大量的消耗时间,因为使用DOM进行解析时,将为文档的每个element、attribute、processing-instrUCtion和comment都创建一个对象,这样在DOM机制中所运用的大量对象的创建和销毁无疑会影响其效率。
DOM的根节点是document对象。DOM属性中,我们常用的类型:元素节点,属性节点,文本节点。
上面说了那么多,简单地说:
1.BOM缺乏标准,DOM的标准是W3C。
2.BOM和浏览器关系密切,DOM和HTML或XML文档关系密切。
3.BOM的根本对象是window对象,DOM的根本对象是document对象。
我所了解到的都还只是皮毛,一些理论东西,通过以后的学习和项目实践会进一步加深。