PHP I

advertisement
PHP I
 PHP, or PHP Hypertext Preprocessor is a server-side
scripting language.
 Originally created in 1994 by Rasmus Lerdorf, to track
users at his web site.
 Over the last few years, it has rapidly developed into a
server-side scripting language, that fully supports (interacts)
with a host of relational database systems (MySql in
particular), thereby making it extremely useful for
generating dynamic page content.
 Latest version is version 4, but 5 due to be released soon.
 In addition, PHP is an open source technology, that is freely
available. It is estimated that over 6 million domains now
use PHP.
 It is platform independent, with implementations for most
Unix, Linux and Windows operating systems.
 Shares some similarity with JavaScript in that it also allows
you to embed programs (scripts) inside HTML code.
 The distinction is that JavaScript (and other client-side
scripting languages) are interpreted by the browser, whilst
PHP (and other server-side scripting languages) is processed
by the web server.
 Once the script is processed, the result of the script (HTML
in most cases) replaces the PHP code, and is returned to the
client.
 Hence the browser sees standard HTML and displays it
appropriately.
 As the script is processed by the server, the technology is
aptly named server-side scripting language
Sample PHP code
<html><head><title>Welcome to the world of PHP</title></head>
<body>
<p>
<?php
echo(“Welcome to the world of PHP, a convenient means of generating
dynamic page content.”);
?>
</p>
</body>
</html>
Resultant HTML code
<html><head><title>Welcome to the world of PHP</title></head>
<body>
<p> Welcome to the world of PHP, a convenient means of generating
dynamic page content.</p>
</body> </html>
Advantages of Server-side scripting
 There are no browser incompatibility issues, as the PHP code is
interpreted entirely by the server.
 Access to server side resources such as data from a relational
database. This is perhaps the most important benefit of PHP.
 Reduced load on the client: JavaScript may significantly slow
the display of a web page on low memory computers, as the
browser has to process the JavaScript code. PHP code is entirely
processed by the web server, hence this burden is passed to the
server.
Drawbacks of Server-side scripting
 Multiple server calls: As PHP code is interpreted by the web
server, each time a user interacts with the page, a call has to be
made to the web server.
 Security issues: Use of PHP could expose the web server, and
lead to unwanted access to web server resources.
Basic Syntax
 PHP scripts begin with <?PHP and end with ?> delimiters
 Any code within these 2 delimiters is processed by the web
server as PHP code. PHP code can be embedded directly
anywhere within an HTML document.
 PHP files are stored with a ‘.php’ extension.
 Syntactically, PHP is very similar to JavaScript, and supports
similar constructs such as Arrays and Conditional statements.
 In addition, PHP comes with a lot of built-in functions, that
enable you to perform all sorts of complex tasks such as sending
emails, file upload, downloads, etc.
 Single line comments begin with ‘//’.
 Multiple line comments are enclosed between ‘ /* ’ and ‘ */ ’
//this is a single line comment.
/* this is a multi-line
comment */
Variables and Operators
 Variables in PHP are declared with $ symbol.
 PHP is a loosely typed language, i.e. its variables can contain
any type of data such as integers, strings, etc. They may also
change types over its lifetime.
$testvariable = “Hello World”;
$testvariable = “3”;
 In the above example, $testvariable is initially initialized with
a string value, and subsequently assigned an integer value.
 You may use the settype built-in function to explicitly convert
the type. E.g. settype($testvariable, “integer”); converts the
type of $testvariable from string, to integer.
 The = is the assignment operator, while = = is the equality
operator.
 Several comparative, and arithmetic operators (similar) to
those in JavaScript exist for performing comparisons, and for
computations.
 PHP automatically converts variable types when used for
arithmetic computation. E.g
<?PHP
$testvariable=“20 students;
$testvariable=$testvariable + 20.
The above statement would evaluate to 40.
 Note that for implicit conversion from string to integer, the
number value must come before other text in the string.
Variable value substitution
 Variable values can be directly written into HTML code, e.g
<html><head><title>PHP Example</title></head>
<body>
<p> Hello
<?php $testvariable=“Paul Smith”; echo($testvariable);
</p>
</body>
</html>
Array Declaration
 In the simplest form, arrays are declared using the built-in array
function, as shown below:
$anarray = array (‘1’,’ten’,’four’);
 The above code creates an array called anarray, that has 3 values.
 As in JavaScript and other similar programming languages, array
indices start at 0, i.e.
 $anarray[0] = = ‘1’, $anarray[1] = = ‘ten’ and $anarray[2] = =
‘four’
 It is also possible to assign values to array elements with the
index. E.g. $anotherarray[0] = ‘ten’
 If the index is not specified, an array element will be added after
the last existing element of the array, i.e.
$anarray[ ] = ‘the fourth element’.
 The above code automatically creates the 4th element of
$anarray.
 PHP also supports the use of non-numeric arrays (associative
arrays).
 E.g.
$birthdays[‘Kevin’] = ’20-03-1982’;
$birthdays[‘James’] = ’21-07-1984’;
 Associative arrays are particularly useful for accessing, and
processing HTML form elements, as demonstrated later.
Accessing values of array elements:
 The array followed by its index (in square brackets) translates to
the value of the element.
 Illustrating with the examples above,
<p><?php echo(“$anarray[1]”); ?> would result in <p>ten</p>
<p>Kevin’s birthday is <?php echo(“$birthdays[‘Kevin’]”); ?>.
would result in <p>Kevin’s birthday is 20-03-1982.
User Interaction and Forms
 Server-side languages such as PHP are limited in their ability to
interact with user input in the sense that a request has to be sent
to the server, server processes the PHP code to dynamically
generate an HTML response, and sends this back to the client.
 Hence user interaction involves back and forth server calls.
Sending information to the web server
 The simplest method of sending information from a client, to the
web server is by sending it along with the URL string as a query
string.
 This is accomplished with the use of a ? symbol before the
variable that is being passed. In the case of sending multiple
variables, they are separated with an ampersand (&)
 E.g <a href=“php_script.php?firstname=Paul”>Paul</a>
 The previous example demonstrates a link to a PHP program
called php_script.php.
 The name variable is passed to the script in URL of the link, as
part of the page request.
 PHP automatically creates an associative array variable called
$_GET that contains any values passed in the URL query string.
 Hence the value of the name variable passed in the example
would be accessed with $_GET[‘firstname’].
 Example:
php_script.php
<? php
$firstname = $_GET[‘firstname’]; //a variable is assigned the value
echo(“Welcome to this website, $firstname”); //of ‘firstname’
?>
// sent in the URL query string.
Passing multiple variable values with the GET method
<a href=“php_script.php?fname=Paul&lname=Smith”>Paul
Smith</a>
 Within php_script.php, these values would be accessed as
$_GET(‘fname’) and $_GET(‘lname’), respectively.
Passing Values from Forms
GET Method:
 Similar to passing variables in URL query strings as
demonstrated above.
 PHP generates a $_GET array for each named form element, and
they can then be easily accessed by the PHP program.
 Due to limitations in the number of characters that can be sent
with the GET method, it is sometimes technically impossible to
use this method to pass form data.
<html><head><title>Passing form element values to PHP</title>
</head>
<body>
<form method=“GET” action=“php_script.php”>
<input type=“text” name=“fname”></input>
<input type=“text” name=“lname”></input>
<input type=“submit”>
</form>
</body></html>
 When the above form is submitted, it will generate an URL
query string similar to href in the link, in the last example.
POST Method
 The information is invisibly passed, such that it does not form
part of the URL .
 This method enables you to send data containing large values,
e.g textarea, to the web server.
 The variables passed are placed in another special array called
$_POST.
 Example: Here the GET method is replaced with POST
<html><head><title>Passing form element values to PHP</title>
</head>
<body>
<form method=“POST” action=“php_script.php”>
<input type=“text” name=“fname”></input>
<input type=“text” name=“lname”></input>
<input type=“submit”>
</form>
</body></html>
 The values in the form elements are accessed with the $_POST
array.
 The php_script.php would have to be modified as shown below:
php_script.php
<? php
$firstname = $_POST[‘fname’];
$lastname = $_POST[‘lname’];
echo(“Welcome to this website,<b> $firstname $lastname!</b>”);
?>
The $_REQUEST array
 Contains all variables that appear in both $_GET and $_POST
 So you’re no longer concerned about the method of the form.
Control Structures
 PHP, like other programming languages provides facilities that
allow us to control the sequence of actions in a script.
The if-else statement:
 Most common control structure.
 Takes the general form:
if (condition)
{ //statements to execute if condition is true }
else { // statement to execute if condition is false }
 The else statement is optional, i.e if there are no statements to
execute if the condition is false, the else statement can be
omitted.
 E.g.
$name = $_REQUEST[‘name’];
if ($name = = ‘Paul’)
{ echo (“Welcome to this web site, master creator!”);
}
else { echo(“Welcome to this website $name”);
}
Multiple conditions
 In practice, you might want to combine more than one condition
within the if construct.
 This is achieved with the use of the ‘and’ operator (&&) and the
or operator (||). The word ‘and’ is a legal operator in PHP.
E.g.
$fname = $_REQUEST[‘fname’];
$lname = $_REQUEST[‘lname’];
if ($fname = = ‘Paul’ && $lname = = ‘Smith’)
// the condition evaluates to
{ echo (“Welcome to this web site, master creator!”); } // true only if both
else { echo(“Welcome to this website $fname $lname”); } //statements are true.
The While Loop
 Takes the form:
while (condition)
{ /* execute statements over and over as long as condition
remains true */ }
 Useful when you’re processing a list of objects, e.g array
elements.
 E.g
$count = 1;
while ($count <= 10)
{ echo(“This is element $count”);
$count++;
}
The For Loop
 Takes the form:
for (initialize; condition; update)
{ /* statements to execute in iterations, as long as condition
remains true after each update */ }
 The counter variable is initialized, its condition set, and its value
updated in the first line of the For Loop.
 E.g.
for ($count = 1; $count <= 10; $count++)
{ echo(“This is element $count”);
}
References:
Build Your Own Database Driven Website Using PHP & MySQL. Kevin
Yank. 2nd Ed. Chapter 3
Deitel, Deitel & Nieto Chapter 29.
Download