Drupal 7 建站学习手记(一):PHP输出的页面多出空行的问题

CentOS7上的LAMP搭建与Drupal8安装及建站初步 一、CENTOS7上的LAMP与DRUPAL8的安装: 步骤 1:安装 Apache Web 服务器 1.首先安装 Apache Web 服务器。 # yum install httpd 2.安装完成后,服务开始是被禁用的,因此我们需要手动启动它,同时让它下次系统启动时自动启动 #systemctlstarthttpd #systemctlenableh... 阅读详情

本博客已弃用,更新版本请访问 www.dss886.com

最近接到一个活,是用Drupal7搭一个网站,实现简单的分角色发布文章的功能,架构是XAMPP+PHP+MySQL+Drupal7。

以下是我在实际项目中遇到的一些问题和解决办法。


一、UTF8无BOM格式和带BOM格式。

我下载了一个 Drupal 7 的主题,然后覆写它的模板,以实现自定义布局。

覆写完以后发现,页面上方会多出一栏空行。


正常的网页:



不正常的网页:顶部多了一行空行:



F12审查元素看看:



这让我百思不得其解啊,拿修改前的和修改后的文件一行一行的对比,完全没有问题啊!



然后突然看到了的底下状态栏,两个文件好像不一样:



UTF-8 with BOM是什么东西?试着改回成UTF-8试试,改回来果然就好了!

百度了一下,UTF-8 BOM:

BOM——Byte Order Mark,就是字节序标记
 
在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。
 
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
 
UTF- 8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开 头的FFFE了。这是个标识UTF-8编码文件的好办法,软件通过BOM来识别这个文件是否是UTF-8编码,很多软件还要求读入的文件必须带BOM。可是,还是有很多软件不能识别BOM。

在Firefox早期的版本里,扩展是不能有BOM的,不过Firefox 1.5以后的版本已经开始支持BOM了。现在又发现,PHP也不支持BOM。PHP在设计时就没有考虑BOM的问题,也就是说他不会忽略UTF-8编码的文件开头BOM的那三个字符。


果然,PHP是不支持BOM的,会把BOM头显示成一个空字符。

为什么我会把修改过的文件保存成有BOM的UTF-8呢?

想到项目刚开始的时候我用的是Notepad++,后来用的是Sublime Text 3,会不会是编辑器的问题?


果不其然,Notepad++的保存格式是这样的:



Sublime Text 3的保存格式是这样的:



摔!两个编辑器默认的UTF-8根本不是一个东西啊!

从此成了Notepad++一生黑。。。。

drupal 入门 2016年9月11日drupal深圳社区组织了一次聚会,做了个D8入门分享,这里整理了一下,D8正式版是2015年11月19日发布,我也是从这个时候开始学习研究drupal ,过去差不多一年时间了,入门过程的很多东西记忆犹新,可能将来这些感受会慢慢的忘记,所以在这一次聚会征集的时候我把它记录分享出来,一来可以帮助处于drupal大门之外正在观望的朋友以及决定深入研究正在入门的朋友,二来自己也做一个 阅读详情

相关推荐

CentOS 7.x 安装drupal 8

1.drupal 8.x 需求 类型 需求 Database 1.MySQL 5.5.3/MariaDB 5.5.20/Percona Server 5.5.8 or higher with PDO and an InnoDB-compatible primary storage engine,2.PostgreSQL 9.1.2 or higher with PDO,3.SQLite

邱凯翔 Edward 的个人博客 4303

PHP输出空行、空格的问题

开头输出空行,是utf-8 BOM问题。 至于空格,则是在PHP的?>标识符后面还有空格或者空行引起的。所以删除所有在?>后的空格即可,还包括这个php所有include的php。 utf-8 BOM问题解决方法: 用UltraEdit32把smarty模板文件即引用的模板文件(如include的header,footer等文件)全另存为无BOM的utf-8文件. 其它补...

从入门到放弃 2228

Drupal建站从入门到精通

Drupal 是一个开源的内容管理系统(CMS),它以模块化架构、多主题支持和强大的社区闻名。Drupal 适用于从个人博客到大型企业级网站的任何类型项目,提供了丰富的功能以及可扩展性。在Drupal中,内容类型是构建网站内容的基础。内容类型定义了网站中不同类型内容的结构和功能。为确保内容的组织和呈现方式符合网站目标和用户体验的需求,内容类型创建流程至关重要。访问Drupal后台,导航至“管理 > 结构 > 内容类型”页面。

weixin_35390379的博客 1491

PHP文件的输出中出现空行

自己遇到了这个问题,所以google了下,大概原因有两种: 第一、php文件保存的编码。 如果是notepad编写的php文件,会统一添加UTF-8 + BOM,从而造成php文件的输出有大概10px的空行。使用类似于editplus之类的工具,保存成其他不包含BOM头的编码格式就可以解决了。 参考:http://hi.baidu.com/oxid/blog/item/9ee5cb1

Liv2005的专栏 2187

Drupal—关于Drupal8的详细安装建站教程

什么是drupal?       drupal是一个好用且功能强大的内容管理系统(CMS),通常也被称为是内容管理框架(CMF),由来自全世界各地的开发人员共同开发和维护,目前最新版本是Drupal 8。 安装drupal所需基础       建站环境:Windows或Linux操作系统      Web服务器:Apache,Nginx,Lighttpd,或微软的IIS服务器,只要能支

一片藍天下 1万+

解决UTF-8格式PHP页面输出空行的简便方法

NULL 博文链接:https://fxyc.iteye.com/blog/640079

Drupal下如何把包含Highcharts的页面输出到PDF

来自:http://www.oschina.net/question/554557_106965 本文PDF版下载:Drupal下如何把包含Highcharts的页面输出到PDF 摘 要 Highcharts是一种通过JavaScript在浏览器客户端生成图的库,由于缺乏生成把HTML转换成PDF的Javascript库,生成PDF的工作只能放在服务器端做。但是服务器端如何比较完美地解释

码农 1556

树莓派国内镜像源一键配置指南

本文提供树莓派国内镜像源一键配置指南,解决默认国外源访问缓慢问题。通过自动检测系统版本并支持清华、阿里云、中科大等主流镜像站选择,大幅提升软件更新与安装速度。包含详细的手动配置方法和常见问题排查,帮助用户快速完成树莓派换源优化。

tequila的博客 1346

linux drupal 7安装教程,drupal7|drupal 7(建站开发工具)下载附安装教程 - 欧普软件下载...

​drupal7是一款非常好用的建站开发工具,采用PHP语言编写的开源内容管理框架,由内容管理系统(CMS)和PHP开发框架(Framework)共同构建,集内核、模块、主题三大功能于一体,可以制作不同类型的网站,小编还提供了drupal7安装教程,需要的朋友可以下载!drupal7功能:Drupal是一套开源的内容管理平台,拥有多种功能,可以用来建设从个人网站到大型社区网站。Drupal包括以下...

weixin_33416318的博客 702

用php建站_九个常用的php建站系统

九个常用的php建站系统php不用我多说,大家都有所了解了,在这个网络营销的时代,越来越多的传统互联网企业都在进行转型了,那么转型的步便是建个网站,网站开发的话,会有不同的开发语言可以实现。从目前情况看的话,php语言写的网站更受大家欢迎一些。以下百分网小编整理的几个常用的php建站系统介绍,欢迎阅读!1. DedeCMS(织梦CMS)织梦CMS是集简单、健壮、灵活、开源几大特点的开源内容管理系统...

weixin_39978257的博客 3203

一个固定翼飞机仿真程序带你系统性上手如何实现配平(工具箱+脚本)

老规矩,该博客所用的模型和脚本已上传至百度网盘,名字为“固定翼配平训练例子”,自己自取。

zouxu634866的博客 2516

drupal7模板命名机制/规则

drupal7模板命名机制/规则 今天讲的是困扰我w3123.com几天的问题了,就是drupal7模板命名机制/规则。 从WordPress转战drupal快两个星期了,就drupal的默认主题来说实在是简陋,连WordPress这个博客的默认主题都不如,所以学习drupal就从drupal模板制作开始了。学习drupal看了两本书,大家可以从文章的后面找到《drup

myas0735的专栏 1976

COMSOL电磁仿真-网格剖分-边界层

介绍COMSOL在低频电磁场中边界层网格的剖分方法。

奇妙水果的技术博客,欢迎交流技术~ 4308

drupal建站案例_Drupal建站过程思考——不识庐山真面目,只缘身在此山中

使用drupal与没有使用drupal,在网站的设计过程上本质是一样的!所以,我们在使用drupal建一个新网站时,要时刻联想自己在没有drupal时是如何设计开发的。不使用drupal时,我们通常按如下步骤设计开发一个网站:1.静态页面设计。主要包括主页、二级列表页、二级内容页三类页面,制作过程一般是:PS效果图->切图->HTML/CSS/JS静态页。通常一个优秀的美工/前端工程师...

weixin_29322855的博客 629

Drupal 7.10安装手记

1、下载必要的安装文件 正常的安装文件就是上官方站之类的下载Drupal 7.10.tar.gz压缩包,顺便上官方把drupal-7.10.zh-han.po(中文语言包)一起下下来吧,毕竟是中国人,用英文管理有点难啊。 2、启用pdo扩展(可选) 有的人在安装drupal时会提示提示装不上,安装的时候没有mysql可选项,发现是pdo扩展没启用,在php.ini中启用extens...

dhdvnz517195的博客 196

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(1)- UCI架构和通用数据包头

如果大家学习过WiFi的SPEC,比如从我的资源里面下载 IEEE 802.11-2007,应该很容易发现,FiRa的spec定义实在是太差了。有现成的好例子不学,非得自己来一套,搞一堆新的名词,其实都是一个意思。比如GID,OID等,而且GID、OID是最先出现的,但是对应表格 还得去附件的最后一项去找。 FiRa是UWB联盟,希望跟WIFi联盟学习一下,把UWB做大做强,而不是自成一派,自命不凡。

Ankie资深技术项目经理 2410

drupal安装教程mysql_Drupal7安装完整教程

Drupal7 史前准备工作(安装 AppServ)AppServ 是 PHP 网页架站工具组合包,作者将一些网络上免费的架站资源重新包装成单一的安装程序,以方便初学者快速完成架站,AppServ 所包含的软件有:Apache、Apache Monitor、PHP、MySQL、phpMyAdmin 等。1. 下载 appserv-win32-2.5.10.exe(http://www.a...

weixin_40003512的博客 452

手把手教你在ARM64架构下编译和部署Milvus:从环境搭建到Docker镜像制作全攻略

本文详细介绍了如何在ARM64架构下编译和部署Milvus,包括环境搭建、源码下载与编译、Docker镜像制作等关键步骤。通过本文的方法,您可以快速构建适用于ARM64设备的Milvus编译环境,并解决常见的编译错误。同时,还提供了基于Docker Compose的测试方法,帮助用户高效地完成向量数据库的部署与应用。这是一次深入探索开源AI工具的实用指南,为开发者在多种硬件架构上的创新应用提供了强有力的支持。

小盒子的博客 1247

关于 drupal8 入门搭建 环境 centos7

软件包准备 centos7 主机一台 集成环境 xampp-linux-x64-7.3.0-0-installer.run https://www.apachefriends.org/download.html 博主为XAMPP for Linux 7.3.0 drupal-8.6.5.tar.gz https://www.drupal.org/download php开发环境 phpstor...

为邻 608

drupal 8 php filter,Drupal 7 与 Drupal 8 的一些变化

1,Settings, States, ConfigEntityDrupal 7:保存配置// mymodule/mymodule.modulevariable_set("mymodule_results", 5);Drupal 8:保存配置// mymodule/mymodule.moduleconfig('mymodule.config')->set('results', 5)->...

weixin_35715474的博客 234

C#与欧姆龙PLC 通信——Fins Tcp协议

该调试助手专门为了帮助大家学习以及测试Fins-Tcp通信,下面进行详细介绍。

qq_34059233的博客 2052

Centos7+Apache-httpd服务搭建Drupal

VMware搭建 Drupal 网站 ​ Drupal开发,Drupal建站,Drupal二次开发?为什么是Drupal?尤其是Drupal企业建站呢?Drupal是一个免费的、开源的内容管理系统,它的基本特点包括易于使用、模块化和支持最新技术的协作功能。Drupal 作为最好的开源CMS系统,一直受到广大drupaler的喜爱。在业界Drupal常被视为内容管理框架(CMF),而非一般意义上的内容管理系统(CMS)。Drupal7目前是稳定的开发版本,为移动而生的Drupal8将在2015年推出正式版。

xingmiao 770

字节跳动 Agent 实践手册

内容概要:本文系统阐述了字节跳动在Agent技术领域的实践路径与全景布局,涵盖技术基础、开发流程、应用场景、运营优化、安全合规、典型案例、团队协作、风险应对及未来发展方向。通过分层架构设计(感知层、推理层、执行层)与核心技术组件(大语言模型、工具调用、多模态融合),构建了覆盖办公、电商、内容创作、教育等多元场景的Agent应用体系,并结合飞书智能办公集群、抖音电商智能运营等典型案例,展示了如何通过数据驱动、混合决策与闭环迭代实现业务价值。同时,强调安全合规体系建设与全球化适配策略,提出未来将在垂直行业渗透、跨场景协同、自主学习进化及生态构建方面持续发力。; 适合人群:具备一定技术背景的产品经理、AI开发者、技术管理者及企业数字化转型负责人,尤其适用于从事智能系统设计、大模型应用开发及相关业务创新的1-3年经验从业者。; 使用场景及目标:①了解Agent在真实业务中如何落地并创造可量化价值;②掌握从需求分析到开发测试、运营优化的全流程方法论;③学习如何平衡技术先进性与业务实用性,规避合规风险,推动跨团队协作;④为构建行业级智能解决方案提供可复用的技术架构与实施指南。; 阅读建议:建议结合文中提供的工具包模板(如需求分析、测试用例、运营看板)与案例细节进行对照实践,重点关注“混合决策模式”“数据闭环迭代”“合规前置”等关键策略,在实际项目中分阶段验证效果,避免盲目追求技术复杂度,始终以解决业务痛点为核心目标。

上一篇: JQuery Mobile 开发学习手记(二):JS绑定的按钮动作不正确的问题
下一篇: Drupal 7 建站学习手记(二):如何将Custom Search模块水平摆放
dss886
博客等级 码龄16年 19粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值