SOME USEFUL PHP EXAMPLES
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 an autoglobal (or superglobal). See the related manual page on autoglobals for more information. These special
variables were introduced in PHP » 4.1.0. Before this time,
we used the older $HTTP_*_VARS arrays instead, such as $HTTP_SERVER_VARS.
Although deprecated, these older variables still exist. (See also the note on old
code.)
To display this variable, you can
simply do:
Example
2.2. Printing a variable (Array element)
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
A sample output of this script may
be:
Mozilla/4.0
(compatible; MSIE 5.01; Windows NT 5.0)
There
are many types of variables
available in PHP. In the above example we printed an Array element. Arrays can be
very useful.
$_SERVER is just
one variable that is automatically made available to you by PHP. A list can be
seen in the Reserved Variables
section of the manual or you can get a complete list of them by creating a file
that looks like this:
Example
2.3. Show all predefined variables with phpinfo()
<?php phpinfo(); ?>
When
you load up this file in your browser, you will see a page full of information
about PHP along with a list of all the variables available to you.
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 Internet Explorer you can do this:
Example
2.4. Example using control
structures and functions
<?php
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {
echo "You are using Internet Explorer<br />";
}
?>
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {
echo "You are using Internet Explorer<br />";
}
?>
A sample output of this script may
be:
You are using Internet
Explorer<br />
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 any introductory PHP book and read the
first couple of chapters, or read the Language Reference
part of the manual. You can find a list of PHP books at »
http://www.php.net/books.php.
The
second concept we introduced was the strpos() function call. strpos() is a function built into PHP which
searches a string for another string. In this case we are looking for "MSIE" (so-called needle) inside $_SERVER["HTTP_USER_AGENT"] (so-called haystack). If the needle is found inside the
haystack, the function returns the position of the needle relative to the start
of the haystack. Otherwise, it returns FALSE. If it does not return FALSE,
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
2.5. Mixing both HTML and PHP modes
<?php
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {
?>
<h3>strpos must have returned non-false</h3>
<center><b>You are using Internet Explorer</b></center>
<?php
} else {
?>
<h3>strpos must have returned false</h3>
<center><b>You are not using Internet Explorer</b></center>
<?php
}
?>
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {
?>
<h3>strpos must have returned non-false</h3>
<center><b>You are using Internet Explorer</b></center>
<?php
} else {
?>
<h3>strpos must have returned false</h3>
<center><b>You are not using Internet Explorer</b></center>
<?php
}
?>
A sample output of this script may
be:
<h3>strpos must
have returned non-false</h3>
<center><b>You are using Internet Explorer</b></center>
<center><b>You are using Internet Explorer</b></center>
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 strpos(). In other words, it depends on
whether the string MSIE was found or not.
It wasn't
immediately obvious to me what would happen if I jumped from PHP to HTML and
back within a function definition. But of course it does the "right
thing":
<?
function foo () {
echo "Enter foo...";
?>Some HTML inside foo...<?
echo "Leave foo.";
}
?>
<HTML><BODY>
<? foo(); ?>
</BODY></HTML>
produces:
Enter foo...Some HTML inside foo...Leave foo.
<?
function foo () {
echo "Enter foo...";
?>Some HTML inside foo...<?
echo "Leave foo.";
}
?>
<HTML><BODY>
<? foo(); ?>
</BODY></HTML>
produces:
Enter foo...Some HTML inside foo...Leave foo.
Rize PHP Developers are highly qualified Professionals and they can complete you are projects in less span of time.
ReplyDelete