php中编码后使用include()函数出现莫名错误

发布于 2021-11-17 18:39:12 字数 1581 浏览 821 评论 11

各位帮忙:

php中我做了一个head.php,然后通过<? include("head.php")?> 引用到index.php中,突然发现编码问题,然后用notepad++将编码由insi 转为utf-8,再次刷新就出现问题了,网页中<head>被解析的支离破碎,右键查看源代码没有问题,但是保存下来发现head结束标签莫名其妙的上移了好几行。但是如果不用include则问题解决。

这个问题是编码的问题还是include的限制呢?昨天下午修改discuz!的时候也出现了这样的问题。

以下是代码:(右键查看)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>社区</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<link rel="stylesheet" type="text/css" href="../my/style.css" />
    <link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<div id=banner>

 

 

……………………

下面是另存为-》打开后查看的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0034)http://localhost:2000/ly/index.php -->
<HTML><HEAD><TITLE>社区</TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 9.00.8112.16441"></HEAD>
<BODY> <LINK rel=stylesheet type=text/css href="社区_files/style.css"><LINK 
rel=stylesheet type=text/css href="社区_files/main.css">
<DIV id=banner>

 

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

高跟鞋的旋律 2021-11-18 02:16:46

php 解析 bom头的时候 他不认识这种 东西 直接当字符发送给浏览器

所以照成你解析的时候出问题

去掉bom 解决问题 你可以结贴了

千笙结 2021-11-18 02:16:44

bom的问题吧 估计是谁用记事本编辑保存过

尝试 用notepad++转换成utf-8 no bom的吧

掩饰不了的爱 2021-11-18 02:16:44

对,我是选上了bom,utf-8和utf-8 no bom 有什么区别吗?还有,php从代码到浏览器在解释的过程中有那些环节可能有编码转换过程呢?

臻嫒无言 2021-11-18 02:16:39

页面显示有问题,不再居中,同时顶部出现一段空白,从源代码看是html被解释的时候,将head的一部分解释到head中,其他的变成body里面的东西了

离不开的别离 2021-11-18 02:15:39

没看明白有什么问题,页面显示有问题么

旧伤慢歌 2021-11-18 02:11:30

现在是head解析出问题了……跟css有什么关系呢?你的意思是公用css和本页面css相互覆盖影响吗?

陌若浮生 2021-11-18 02:04:47

这个好像是包含的时候,头部文件里的css这些公共的代码应用到啦主页面。要不你把头部文件的css这些变成不是公共的代码试一试

怎言笑 2021-11-18 02:03:02

对,我是选上了bom,utf-8和utf-8 no bom 有什么区别吗?还有,php从代码到浏览器在解释的过程中有那些环节可能有编码转换过程呢?

残花月 2021-11-18 01:59:09

BOM用于告知编辑器此unicode(准确说是UTF-16,UTF-32)文档的字节序(BE or LE)。但UTF-8其实不需要BOM的(linux下utf-8文档都没有BOM),如果PHP utf-8文档有BOM会导致一些问题:浏览器会把BOM字符当成网页字符来解析,结果就出莫名故障。

猫烠⑼条掵仅有一顆心 2021-11-18 01:00:19

至于编码转换,在PHP解析器(php-fpm, mod_php),web解析器(apache, nginx)都可以实现编码转换

高跟鞋的旋律 2021-11-17 19:57:54

保存到UTF-8的时候是不是把BOM选上了?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文