php (hypertext preprocessor) 1. php references from w3 schools: php

33
PHP (Hypertext Preprocessor) 1

Upload: aron-payne

Post on 11-Jan-2016

259 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

PHP (Hypertext Preprocessor)

1

Page 2: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

PHP References

• From W3 Schools: http://www.w3schools.com/PHP/DEfaULT.asP

• PHP A pocket reference: http://oreilly.com/catalog/phppr/chapter/php_pkt.html

• Another tutorial: http://www.php.net/tut.php

2

Page 3: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Introduction• PHP is a scripting language, created in 1994 by Rasmus Lerdorf, that is designed for producing dynamic

Web content. • PHP originally stood for “Personal Home Page,” but as its functionality expanded, it became “PHP:

Hypertext Processor” because it takes PHP code as input and produces HTML as output.• Although PHP is typically used for Web-based applications, it can also be used for command-line scripting

– a task commonly handled by Perl – as well as client-side applications (possibly with a graphical user interface) – a task commonly handled by Python or Java. NOTE: This course only addresses PHP in the context of dynamic Web content creation.

• PHP is… interpreted rather than compiled like Java or C.• an embedded scripting language, meaning that it can exist within HTML code.• a server-side technology; everything happens on the server as opposed to the Web browser’s computer,

the client.• cross-platform, meaning it can be used on Linux, Windows, Macintosh, etc., making PHP very portable.

• PHP does not…• handle client-side tasks such as creating a new browser window, adding mouseovers, determining the

screen size of the user’s machine, etc. Such tasks are handled by JavaScript or Ajax (Asynchronous JavaScript and XML).

• do anything within the Web browser until a request from the client has been made (e.g., submitting a form, clicking a link, etc.).

3

Page 4: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Basic PHP syntax

• PHP code typically resides in a plaintext file with a .php extension. The code itself is defined within PHP delimiters: <?php and end ?>.

• The PHP interpreter considers anything outside of these delimiters as plaintext to be sent to the client.

4

Page 5: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Example<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0

Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-

transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="text/html;

charset=iso-8859-1" /><title>Some title here</title></head><body><?phpphpinfo(); // phpinfo() is a built-in PHP function?></body></html>

5

Page 6: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Script execution• There are two methods for executing PHP scripts:

– via the Web server, and the command-line interface (CLI). • We will use the first method.• Upload your .php file to your Web account• Make sure the permissions are set correctly; for example,

chmod 644 somefile.php.• Navigate to the file with a Web browser. The URL will be

http://students.engr.scu.edu/~username/somefile.php.• The Web server is configured to associate any filename

ending in .php with the PHP interpreter. • The PHP interpreter opens the file and begins processing it.• The output of the PHP interpreter is sent to the client.

6

Page 7: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

To display a string<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0

Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="text/html;

charset=iso-8859-1" /><title>Some title here</title></head><body><p>The timeless phrase is:<?phpprint("Hello, world!");?></p></body></html>

7

Page 8: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Printing using echo and print• The echo() function is slightly different, in that you can provide comma-separated

strings. • The print() function requires that you provide one string argument; therefore, to

work with multiple strings, you must use the string concatenation operator (.).• echo "Hello, world! ", "Goodbye, world!";• print "Hello, world! " . "Goodbye, world!";• In these cases, the interpreter does not require parentheses; however, using the

parentheses is also acceptable. • Writing HTML to the browser is essentially no different than writing simple text. To

print the double-quotation mark, escape it within the string using \".• print "<h2>Useful Links</h2>";• print "<p><a href=\"http://www.google.com\">Google</a></p>";• Any text that would exist in the Web page (e.g., HTML elements, cascading style

sheets, JavaScript) can be sent to the browser using printing functions.

8

Page 9: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Comments

• Comments are denoted using the same syntax as C, C++, or Perl: /* */, and //, and # respectively.

9

Page 10: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

PHP Variables

• The syntax for PHP variables is similar to Perl.• Variable names must be preceded by a dollar

sign ($).• Variables do not need to be declared before

being used.• Variables do not need to be explicitly typed

(e.g., int, float, etc.).

10

Page 11: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

PHP Types• The fundamental types are:• Numeric• integer. Integers (±231); values outside this range are converted to

floating-point.• Floating-point numbers.• boolean. true or false; PHP internally resolves these to 1 (one) and 0

(zero) respectively. Also as in C, 0 (zero) is false and anything else is true.• string. String of characters.• array. An array of values, possibly other arrays. Arrays can be indexed or

associative (i.e., a hash map).• object. Similar to a class in C++ or Java. • resource. A handle to something that is not PHP data (e.g., image data,

database query result).• PHP has a useful function named var_dump() that prints the current type

and value for one or more variables.• Arrays and objects are printed recursively with their values indented to

show structure.

11

Page 12: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

PHP Variables-Examples<?php

$greeting = 'Hello';

$message1 = "$greeting, world!\n"; // Double quotation marks

$message2 = '$greeting, world!\n'; // Single quotation marks

print "1: $message1\n";

print "2: $message2\n";

?>

<?php

$a = "Hello, world" . 35 . "!\n";

print $a;

?>

<?php

$a = 100;

$b = 324.75;

$sum = $a + (int) $b;

print "$a + $b = $sum";

?>

12

Page 13: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Arrays- indexed and associativeIndexed Arrays<?php$a = 35;$b = "Programming is

fun!";$c = array(1, 1, 2, 3, 5,

8);var_dump($a,$b,$c);?>• The var_dump() function in PHP is

used to print the current type and values of one or more variables.

• Arrays and objects are printed recursively with values indented to show structure.

Output

int(35)string(19) "Programming is fun!"array(6) {[0]=>int(1)[1]=>int(1)[2]=>int(2)[3]=>int(3)[4]=>int(5)[5]=>int(8)}

13

Page 14: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Arrays- associative

$file_ext = array(".c" => "C",

".cpp" => "C++",

".pl" => "Perl",

".java" => "Java");

14

Page 15: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Arrays$proglangs = array("C", "C++", "Perl", "Java");

echo "I know ", count($proglangs), " language(s)."; // Displays "I know 4 language(s).“

$proglangs = array("C", "C++", "Perl", "Java");

print_r($proglangs);Output:Array([0] => C[1] => C++[2] => Perl[3] => Java)

15

Page 16: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Printing an array• The print_r() function performs a recursive output of the

given array.• If you want to use the print_r() function for temporary

debugging output within the Web browser, surround theprint_r() call with the HTML <pre> and </pre> tags to make

the output easier to read.• The print_r() function takes an optional second argument,

that if set to true, will return the output as a string instead of printing anything to the console or Web browser. For example, $res = print_r($proglangs,true);.

• The var_dump() function provides more detail with regard to the individual keys and values stored in the array.

16

Page 17: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Associative Arrays

• Associative arrays work much like their indexed counterparts, except that associative arrays can have non-numeric keys(e.g., strings).

17

Page 18: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Functions• To define a function, use the function keyword. For example,

function foo() below takes no arguments simply returns the integer 1 (one).

function foo() {return 1;

}• As with Perl, functions in PHP do not have a specified return type;

therefore, the return statement is not required. • If you were to use return with no argument, the value NULL is

returned. • As with C you can return the results of conditions, in which case 1

(one) is true and 0 (zero) is false. Here is an example:function is_more_than_ten ($i) {return $i > 10;}

18

Page 19: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Functions• Arguments are passed by specifying the names within the

parentheses of the function definition. • Because PHP uses dynamic typing, no data type is

necessary. • NOTE: You can pass arguments by reference (i.e., pointers)

as in C; function display_name_and_age ($name, $age) {print "It appears that $name is $age year(s) old.\n";

}• You can also specify default values for function arguments.function greet ($name = "user") {print "Hello, $name!\n";

}19

Page 20: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Functions• Arguments are passed by specifying the names within the

parentheses of the function definition. • Because PHP uses dynamic typing, no data type is necessary. • NOTE: You can pass arguments by reference (i.e., pointers) as in C; function display_name_and_age ($name, $age) {

print "It appears that $name is $age year(s) old.\n";

}• You can also specify default values for function arguments.• Arguments that have default values should be placed at the end of

the argument list.function greet ($name = "user") {

print "Hello, $name!\n";}

20

Page 21: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Functions• Because the PHP interpreter does not complain if you

specify too many arguments, you can support multiple arguments using the func_num_args() and func_get_arg() functions.

• Here is an example function that prints out each of its arguments:

function display_arguments () {$n = func_num_args();for ($i=0; $i < $n; $i++)echo "arg ", $i+1, " = ", func_get_arg($i), "\n";

}

21

Page 22: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Returning Arrays from Functions• A common task for functions is to initialize various data structures.

Consider the following function (and its call):function init_params () {

$params["username"] = “sjames";$params["realname"] = “Susan James";return $params;

}• $params = init_params();• The init_params() function creates an associative array with two

keys, then returns the newly-created array. • Suppose the “user name” and “real name” values had to be

retrieved from a database, and one or more of the values could not be retrieved.

• The only way to ensure that the array was correctly populated is to see if the desired keys are defined (i.e., not

• NULL).22

Page 23: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Returning Arrays from Functionsfunction init_params (&$params) {// Perform a database query here, then populate $params...

if (query was successful)return true;return false;

}• if (!init_params($params))• // Display some useful error message here...• The syntax becomes slightly more complex because the

array is passed by reference (denoted by the & operator in the function argument list).

• However, the function can now return a success/failure indicator while populating the array (assuming the query was successful).

23

Page 24: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Global Variables• Global variables are stored in a predefined associative array named $GLOBALS. • To assign a value to a global variable, use the following syntax:• $GLOBALS['variablename'] = somevalue;• To access a global variable, simply provide the variable name as the key to the

$GLOBALS array. For example,• $GLOBALS['theuser'] = "dknuth"; // Assign the value• $curr_user = $GLOBALS['theuser']; // Retrieve the value• Alternatively, you can specify that a given variable is global within the current

scope using the GLOBAL keyword. • Suppose you have a global variable $bar that you want to be updated by function

foo().function foo () {

GLOBAL $bar;$bar++;

}• In the above example, any use of the variable $bar after the GLOBAL statement is

equivalent to $GLOBALS['bar'].

24

Page 25: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Variable Variables• Variable variables allow you to access a variable

without using that variable directly. Essentially the first variable contains a string whose value is the name of the second variable (without the dollar sign).

• The second variable is accessed indirectly by prefixing the first variable with an extra dollar sign.

• This PHP construct is best described with an example:• $val1 = 30;• $val2 = 60;• $foo = "val2";• $bar = $$foo; // $bar's value is 60 after this statement

25

Page 26: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Table 11.1 The reserved words of PHP

26

Page 27: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Table 11.2 Some useful predefined functions

27

Page 28: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Table 11.3 Some commonly used string functions

28

Page 29: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Table 11.4 File use indicators

29

Page 30: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

SuperGlobalsSuperglobals are global variables that a predefined by PHP because

they have special uses. The variables themselves are associative arrays. The following table

lists the superglobals and their corresponding descriptions.• $_GET Variables sent via an HTTP GET request.• $_POST Variables sent via an HTTP POST request.• $_FILES Data for HTTP POST file uploads.• $_COOKIE Values corresponding to cookies.• $_REQUEST The combination of $_GET, $_POST, and $_COOKIE.• $_SESSION Variables stored in a user’s session (server-side data

store).• $_SERVER Variables set by the Web server.• $_ENV Environment variables for PHP’s host system.• $GLOBALS Global variables (including $GLOBALS).

30

Page 31: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Processing XHTML Forms

• The first step in handling user input via Web forms is to create the user interface.

• The form is typically defined in an XHTML document unless the form itself has dynamic content.

• The action attribute of the form element should be the URL of the PHP script that will be processing the form data.

31

Page 32: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Receiving form data• Recall that form data is submitted in name-

value pairs, which are derived from the form widgets’ name and value attributes.

• The standard method for accessing this data is by accessing one of the predefined associative arrays named $_POST and $_GET, depending on the form submission method used.

• The syntax is $_POST['name'], where name corresponds to the name attribute of a given form widget.

32

Page 33: PHP (Hypertext Preprocessor) 1. PHP References From W3 Schools:   PHP

Form Processing - ExampleHTML file (Survey.html) with a form

<html><body><form action="http://localhost/survey/processSurvey.php"

method="post"><p>Your Name: <input type="text" name="yourname" /><br />E-mail: <input type="text" name="email" /></p>

<p>Do you like this website?<input type="radio" name="likeit" value="Yes"

checked="checked" /> Yes<input type="radio" name="likeit" value="No" /> No<input type="radio" name="likeit" value="Not sure" /> Not

sure</p>

<p>Your comments:<br /><textarea name="comments" rows="10"

cols="40"></textarea></p>

<p><input type="submit" value="Send it!"></p></form></body></html>

A PHP script - processSurvey.php

<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.1 //EN"

"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html><body>Your name is: <?php echo $_POST['yourname']; ?><br />Your e-mail: <?php echo $_POST['email']; ?

><br /><br />Do you like this website? <?php echo $_POST['likeit']; ?

><br /><br />Comments:<br /><?php echo $_POST['comments']; ?

></body></html>

33