PHP | headers_sent() function
Last Updated :
07 Aug, 2021
The headers_sent() function is an inbuilt function in PHP which is used to determines whether the header is successfully sent or not. The headers_sent() function returns True if header sent successfully and False otherwise.
Syntax:
bool headers_sent( $file, $line )
Parameters: This function accepts two parameters as mentioned above and described below:
- $file: This parameter holds the filename. It is an optional parameter.
- $line: This parameter holds the line number where output started. It is also optional parameter.
The headers_sent() function will put the PHP source file name and line number where output started in the file and line variables if the file and line parameters are set.
Return Value: This function returns True if headers has been sent and false otherwise.
Example 1:
PHP
<?php
if (!headers_sent()) {
exit ();
}
?>
|
Output:

In this example, no header is sent previously so !headers_sent() will be TRUE and then header(“Location:https://en.wikipedia.org/wiki/Main_Page”); will send the header information and as per the header it will redirect to the website that is in parameter.
Note: Header cannot be add once header block has been sent. So this function has implemented to avoid errors like.
Warning: Cannot modify header information - headers already sent by
(output started at /storage/ssd3/798/438108/public_html/gfg/header.php:1)
in /storage/ssd3/798/438108/public_html/gfg/header.php on line 4
Example 2:
PHP
<?php
header( "Expires: Sun, 25 Jul 1997 06:02:34 GMT" );
?>
<html>
<body>
<p>hello world</p>
<?php
header( "Cache-Control: no-cache" );
header( "Pragma: no-cache" );
?>
</body>
</html>
|
Note: The example shown here will not run in online IDE as it doesn’t support redirecting and modifying headers. So, try to run it on hosting server or on localhost.
Output:
hello world
Warning:
Warning: Cannot modify header information - headers already sent by
(output started at /storage/ssd3/798/438108/public_html/gfg/header.php:4)
in /storage/ssd3/798/438108/public_html/gfg/header.php on line 9
Warning: Cannot modify header information – headers already sent by
(output started at /storage/ssd3/798/438108/public_html/gfg/header.php:4)
in /storage/ssd3/798/438108/public_html/gfg/header.php on line 10
This error can be solved by using headers_sent() function.
Example 3: After resolving the above error.
PHP
<?php
header( "Expires: Sun, 25 Jul 1997 06:02:34 GMT" );
?>
<html>
<body>
<p>hello world</p>
<?php
if (!headers_sent()){
header( "Cache-Control: no-cache" );
header( "Pragma: no-cache" );
}
?>
</body>
</html>
|
Output:
hello world

Explanation:
headers_sent() function checking whether header has already been sent or not. so !headers_sent() returns false for which header are not being sent again, avoiding the errors.
NOTE: The example shown here will not run in online IDE as it doesn’t support redirecting and modifying headers. So, try in some hosting server or on localhost.
Example 4:
PHP
<?php
function server_url() {
$proto = "http" .
((isset( $_SERVER [ 'HTTPS' ]) &&
$_SERVER [ 'HTTPS' ] == "on" ) ? "s" : "" ) . "://" ;
$server = isset( $_SERVER [ 'HTTP_HOST' ]) ?
$_SERVER [ 'HTTP_HOST' ] : $_SERVER [ 'SERVER_NAME' ];
return $proto . $server ;
}
function redirect_rel( $relative_url ) {
$url = server_url() . dirname( $_SERVER [ 'PHP_SELF' ])
. "/" . $relative_url ;
if (!headers_sent()) {
header( "Location: $url" );
}
else {
echo "<meta http-equiv=\"refresh\" content=\"0;url=$url\">\r\n" ;
}
}
redirect_rel( "server.php" );
?>
|
Output:

Reference: http://php.net/manual/en/function.headers-sent.php
Similar Reads
PHP | header() Function
The header() function is an inbuilt function in PHP which is used to send a raw HTTP header. The HTTP functions are those functions which manipulate information sent to the client or browser by the Web server, before any other output has been sent. The PHP header() function send a HTTP header to a c
3 min read
PHP | headers_list() Function
The header_list() function is an inbuilt function in PHP which returns the list of response header that sent or ready to send to the client or browser, in the form of array. Syntax: array headers_list( void ) Parameters: This function does not accept any parameter. Return Value: It returns a list or
2 min read
PHP token_name() Function
The token_name() function is an inbuilt function in PHP that is used to retrieve the textual representation of a given token identifier. In PHP, when you write code, it gets parsed into a series of tokens, which are the basic units of code that the interpreter understands. These tokens include keywo
1 min read
PHP Ds\Set get() Function
The Ds\Set::get() function of Ds\Set class in PHP is an inbuilt function which is used to get a value from the Set instance. This function is used to fetch a value present at a particular index in the Set instance. Syntax: mixed public Ds\Set::get ( int $index ) Parameters: This function accepts a s
2 min read
PHP reset() Function
The reset() function is an inbuilt function in PHP. This function is used to move any array's internal pointer to the first element of that array. While working with arrays, it may happen that we modify the internal pointer of an array using different functions like prev() function, current() functi
2 min read
PHP | parse_url() Function
The parse_url() function is an inbuilt function in PHP which is used to return the components of a URL by parsing it. It parses an URL and return an associative array which contains its various components. Syntax: parse_url( $url, $component = -1 ) Parameters: This function accepts two parameters as
2 min read
PHP String Functions
Strings are a fundamental data type in PHP, used to store and manipulate text. PHP provides a wide variety of built-in string functions. These functions perform various operations such as string transformations, character manipulations, encoding and decoding, and formatting, making string handling s
6 min read
PHP restore_error_handler() Function
The restore_error_handler() function is an inbuilt PHP function that facilitates restoring the previous version of an error handler function. Syntax: restore_error_handler(): boolParameter: This function does not accept any parameter. Return Value: This function will always return "true". Example 1:
1 min read
HTTP headers | Set-Cookie
The HTTP header Set-Cookie is a response header and used to send cookies from the server to the user agent. So the user agent can send them back to the server later so the server can detect the user. Syntax: Set-Cookie: <cookie-name>=<cookie-value> | Expires=<date> | Max-Age=<no
2 min read
HTTP headers | Connection
The HTTP Connection header is a general type header that allows the sender or client to specify options that are desired for that particular connection. Instead of opening a new connection for every single request/response, Connection helps in sending or receiving multiple HTTP requests/responses us
2 min read