PHP 中的标题位置
本文将介绍 header()
函数的概念及其在 PHP 中的语法。它将涵盖在 PHP 中编写标题的规则。此方法也适用于 Content-Type
和 Content-Disposition
标头。
我们还将在本文中介绍 location:
标头字符串。我们将解释 PHP 中 location header 的用法和本质。本文将演示标头位置如何发送响应代码并将浏览器重定向到另一个页面。
PHP 中 Header()
函数及其语法介绍
header()
函数是一个内置的 PHP 函数,它允许我们向客户端发送原始 HTTP 标头。发送的标头采用原始形式。我们应该在发送任何输出之前调用 header()
函数。任何形式的输出,如 HTML 标签或 PHP 表单发送的输出,都应该在发送标头信息之前被丢弃。因此我们可以在任何输出之前控制服务器发送到浏览器的信息。
header()
函数的语法是:header(string,replace,http_response_code);
。该函数接受三个参数。第一个参数是标题字符串。有两种类型的标题字符串。第一种类型是以 HTTP/
开头的字符串。它指定要发送到浏览器的 HTTP 代码。标题字符串的第二种类型是 location:
标题,它将浏览器重定向到指定的位置。函数中的下一个参数是 replace
,它表示一个布尔值。它是一个可选参数,用于确定标头是否应替换之前的相似标头。第三个参数 http_response code
也是一个可选参数,用于强制 HTTP 响应代码为指定值。
例如,创建一个 header()
函数并将标题字符串用作 Content-Type
。将 Content-Type
的值写为 application/pdf
。再次创建另一个 header()
函数。这一次,将标题字符串写为 Content-Disposition
。将字符串的值指定为 attachment
。不要忘记在它后面加一个分号。在分号后写入另一个属性 filename
,并将文件名提供为 download.pdf
。
当我们运行以下脚本时,会出现一个下载对话框。它要求你下载名为 download.pdf
的 pdf
文件。第一个标题表示文件应该是 pdf
格式,第二个标题表示文件的文件名并强制浏览器显示对话框以保存文件。
示例代码:
#php 7.x
<?php
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
?>
在 PHP 中使用 header()
函数和 location:
标题字符串
我们可以将 header()
函数与 PHP 中的 location:
头字符串一起使用。标头字符串将网页重定向到指定的位置。它通常用于网页中,在提交输入后将用户重定向到特定页面。例如,当用户在登录时输入正确的凭据时,我们可以使用标头位置将它们重定向到主页。我们可以在 header()
函数中指定布尔值和响应代码。但是,这些参数是可选的。默认的布尔值为 true,这意味着它将替换之前的类似标题。我们还可以提供响应代码作为第三个参数。默认响应代码是 302
。例如,我们可以将一个数组写入一个文件,并将当前页面重定向到另一个显示文件已写入消息的页面。我们可以使用 file_put_contents()
函数写入文件。
例如,在 $day
变量上创建一个数组。将键创建为 weather
和 time
,将相应的值创建为 Sunny
和 1:30 pm
。然后使用 file_input_contents()
并指定一个文件 file.txt
作为第一个参数。使用 print_r()
函数作为第二个参数。提供变量 $day
和布尔值 true
作为 print_r()
函数的参数。使用 if
条件评估整个表达式。在 if
块内使用 header()
函数。在函数内将位置指定为 message.php
。使用冒号 :
指定位置。请注意,location
和 :
冒号之间不应有任何间隙。创建一个 PHP 文件 message.php
。在文件中显示一条消息,说明文件已被写入。
在上面的例子中,数组被写入文件 file.txt
。if
条件评估为真,header()
函数将位置重定向到 message.php
。因此,显示了输出。我们还可以在地址栏中看到更改后的 URL。如果在现有的标头函数下面还有另一个标头函数,则后一个标头将替换前一个标头。这是因为在 header()
函数中,replace
选项的默认值为 true。
代码示例:
#php 7.x
<?php
$day = array (
'weather' => 'Sunny',
'time' => '1:30 pm',
);
if(file_put_contents('file.txt', print_r($day, true))){
header("location: message.php");
}
?>
输出:
The file has been written.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn