首页 / PHP / 什么意思在php文件的页面顶部
什么意思在php文件的页面顶部
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了什么意思在php文件的页面顶部,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3005字,纯文字阅读大概需要5分钟。
内容图文
![什么意思在php文件的页面顶部](/upload/InfoBanner/zyjiaocheng/703/c45e31ce10c24122b5831b516bce3ce3.jpg)
>我在某处读到ob_start()应该放在页面的顶部.而
>某处我读到session_start()应放在页面顶部.
>某处我读取header()应放在页面顶部.
>我读到的地方include()或require()应该放在页面的顶部.
我很困惑应该在顶部写什么以及放置哪个顺序?什么意思在顶部???是吗
>之前< html>要么
>< html>之后或之前< head>要么
>< head>之后
请告诉我这些功能的实际顺序是什么
像我们必须把ob_end_flush();和其他功能,在< html>之后的页面底部或者在< / body>之后以及页面底部的功能顺序是什么
解决方法:
为了理解您所编写的语句的价值,您需要对所提到的函数的操作有一些基本的了解.我会试着在这里打破它们.
让我们从session_start()和header()调用开始:
第一个函数完全符合名称的含义;它开始一个会话.
由于HTTP协议的无状态特性,需要一些能够记住页面请求之间状态的机制.这可以通过会话来实现.虽然会话,在PHP的早期阶段,有时通过传递链接中的会话ID传播(someurl?sessionId = someSessionHash),现在,这被认为是不好的做法.
如今,会话主要通过使用cookie来跟踪(在早期它们也被广泛使用,不要误解我).这个会话cookie(与流行的看法相反,只不过是一个普通的cookie,其中只有会话ID,(通常)在你关闭浏览器后简单到期)随着每个后续页面请求被发送到浏览器.以下是捕获的位置:cookie作为响应的标头发送(意味着在实际主体之前),如下所示:
// I've left out a lot of other headers for brevity
HTTP/1.x 200 OK
Date: Sun, 31 Jan 2010 09:37:35 GMT
Cookie: SESSION=DRwHHwAAACpes38Ql6LlhGr2t70df // here is your Cookie header
// after all response headers come the actual content:
// the response body, for instance:
<html>
<head>
</head>
<body>
</body>
</html>
现在,因为必须在响应主体之前发送响应头,所以在输出任何主体内容之前,需要调用session_start()和header().原因如下:如果在调用session_start()或header()之前输出任何响应主体内容(可能像空白字符一样简单),PHP将自动输出响应头.这是因为HTTP响应必须首先在响应主体之前发送响应头.正是这种情况经常导致臭名昭着的警告:标头已经在PHP中发出警告.换一种说法;一旦PHP发送了标题,因为它也必须发送正文数据,它不能再添加任何标题.
因此,既然您已经了解了有关HTTP协议的信息,那么您可以采取一些措施来防止这种情况发生.这就是我们进入下一个功能的地方:
ob_start,ob_flush等…:
在默认设置中,PHP通常会立即输出任何内容.因此,如果您输出任何响应正文内容,则会首先自动发送标题.
但是PHP提供了缓冲输出的机制.这是ob_ *函数族.使用ob_start,您可以告诉PHP开始缓冲.使用ob_flush,你告诉PHP刷新缓冲区;换句话说,将缓冲区的当前内容输出到标准输出.
使用这些缓冲机制,你仍然可以在输出正文数据之后为响应添加标题,因为你还没有实际发送过正文数据,你只需要缓冲它,稍后通过调用ob_flush或ob_end_flush来输出有你.
但请记住,使用ob_ *函数通常不仅仅是代码味道.换句话说(这就是为什么在顶部做某些事情很重要),然后用它来弥补糟糕的设计.有人忘了正确设置他们的操作顺序,并调整输出缓冲以绕过这个标题和会话剧.
说完这一切之后,你可以很容易地看出为什么输出html和/或其他正文内容应该是最后的.除此之外,我强烈建议您将PHP代码与输出代码分开.因为它更容易阅读和理解.开始这样做的一个好方法是让主要的<?php?>之后出现真正的html.代码块.但是还有其他方法,这超出了这个问题的范围.
然后关于include和require调用.要将这些放在php文件的顶部,通常需要澄清.它可以很好地将这些调用保存在一个地方.但请记住,如果其中一个文件在调用session_start()或header()而不使用输出缓冲之前输出任何内容,则会再次被搞砸.
内容总结
以上是互联网集市为您收集整理的什么意思在php文件的页面顶部全部内容,希望文章能够帮你解决什么意思在php文件的页面顶部所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。