Something Useful
Let us do something more useful now. We are going to check
what sort of browser the visitor is using.
For that, we check the user agent string the browser
sends as part of the HTTP request. This information is stored in a variable. Variables always start
with a dollar-sign in PHP. The variable we are interested in right now
is $_SERVER['HTTP_USER_AGENT'].
Note:
$_SERVER is a
special reserved PHP variable that contains all web server information.
It is known as a superglobal. See the related manual page on
superglobals
for more information.
To display this variable, you can simply do:
Example #1 Printing a variable (Array element)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
A sample output of this script may be:
Mozilla/5.0 (Linux) Firefox/112.0
There are many types of
variables available in PHP. In the above example we printed an element
from an Array variable.
Arrays can be very useful.
$_SERVER is just one variable that PHP automatically
makes available to you. A list can be seen in the
Reserved Variables section
of the manual or you can get a complete list of them by looking at
the output of the phpinfo() function used in the
example in the previous section.
You can put multiple PHP statements inside a PHP tag and create
little blocks of code that do more than just a single echo.
For example, if you want to check for Firefox you
can do this:
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'You are using Firefox.';
}
?>
A sample output of this script may be:
Here we introduce a couple of new concepts. We have an
if statement.
If you are familiar with the basic syntax used by the C
language, this should look logical to you. Otherwise, you
should probably pick up an introductory PHP book and read the first
couple of chapters, or read the Language
Reference part of the manual.
The second concept we introduced was the str_contains()
function call. str_contains() is a function built into
PHP which determines if a given string contains another string. In this case we are
looking for 'Firefox'
(so-called needle) inside
$_SERVER['HTTP_USER_AGENT'] (so-called haystack). If
the needle is found inside the haystack, the function returns true. Otherwise, it
returns false
. If it returns true
, the if expression evaluates to true
and the code within its {braces} is executed. Otherwise, the code is not
run. Feel free to create similar examples,
with if,
else, and other
functions such as strtoupper() and
strlen(). Each related manual page contains examples
too. If you are unsure how to use functions, you will want to read both
the manual page on how to read a
function definition and the section about
PHP functions.
We can take this a step further and show how you can jump in and out
of PHP mode even in the middle of a PHP block:
Example #3 Mixing both HTML and PHP modes
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>str_contains() returned true</h3>
<p>You are using Firefox</p>
<?php
} else {
?>
<h3>str_contains() returned false</h3>
<p>You are not using Firefox</p>
<?php
}
?>
A sample output of this script may be:
<h3>str_contains() returned true</h3>
<p>You are using Firefox</p>
Instead of using a PHP echo statement to output something, we jumped out
of PHP mode and just sent straight HTML. The important and powerful point
to note here is that the logical flow of the script remains intact. Only
one of the HTML blocks will end up getting sent to the viewer depending on
the result of str_contains(). In other words, it depends on
whether the string Firefox
was found or not.