2
What is this “PHP” thing?
• Official description:
“PHP, which stands for "PHP: Hypertext Preprocessor" is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. Its syntax draws upon C, Java, and Perl, and is easy to learn.
3
What does PHP do?
• Most commonly: used inside a web server to parse pages and dynamically generate content.
• Differs from a language like Javascript in that it is Server Side (processed on the server)
4
Normal HTML Document
• Requires only a web browser to read
• Can be read off local disk, or transferred from server via HTTP
5
PHP Document
• In order to be correctly read and processed, must be parsed through a server capable of parsing PHP code.
• Server processes code: formats a standard HTML document out of the PHP code, then transfers via HTTP to client browser. No client software required (other than web browser).
6
ClientServer
Simple Transfer of Normal HTML
.HTMLFile
WebServer
Application(Apache)
Client’sBrowser(MSIE,
Netscape,Etc)
HTML HTML
7
ClientServer
Simple Transfer of PHP
.PHPFile
WebServer
Application(Apache)
Client’sBrowser(MSIE,
Netscape,Etc)
HTMLPHPParsing Module
HTML PHP &HTML
9
More…
• A PHP file is just a HTML file with PHP code inserted where needed!
• To designate PHP code, we use the <?php and ?> tags to indicate the start and end of code to be parsed.
11
Our First Command! Echo!
• echo <string>;
• Example: echo “Hello!”;Result: Hello!
• Example: echo “I love PHP!”;Result: I love PHP!
12
What is this String?
• echo <string>;
• But what is a string?
• A string is any sequence of characters. This also includes a sequence of no characters.
13
These are Strings
• “Hi”
• “I love PHP!”
• “5”
• “”
• Note that saying “5” is NOT the same as saying just 5.
14
Processing
• Just like HTML is processed sequentially (in order), so is PHP code.
• <?php echo “Hello “; echo “world!”;?>
• Results in Hello world!.
15
General Syntax
• After typing a command, you should always put a semicolon (;) after it.
• It is good practice to indent your code one tab after the <?php tag
• Another good practice is to put each command on its own line.
• Ex:• <?php
echo “Hello “; echo “world!”;?>
16
More Fun With Echo
• echo <string>;
• We can put in numeric values in too!
• echo “5”; and echo 5; both display 5.
• This is because PHP can convert a number to a string automatically!
17
Data Types
• Data is categorized by Data Types• PHP is not a strongly typed language, doesn’t
require you to define types• string – text data – “Hello world”, “My password is
12345”, “12345”• double – number data – -5, 0, 11, 11.5, 13• int – number data, but won’t remember decimals -
-5, 0, 11, 13• boolean – true or false? – true, false• Categorize these:• -5.51, “-5.51”, true, 5• double, string, bool, int OR double!
18
Simple Math
• We can do math!
• <?php echo “If I add one to one, it is “; echo (1+1);?>
• Displays If I add one to one it is 2
19
Example
• <?php echo “I love PHP! “;
echo “<BR>”; echo “PHP can do math: “; echo (8*10);?>
• Displays:I love PHP!PHP can do math: 80
20
String Concatenation
• We can add numbers: 2+2
• How do we add strings?
• We use the . Operator (concatenation)
• Echo “5 plus 5 is “ . (5+5);
• Displays 5 plus 5 is 10
21
Example
• <?php echo “I love PHP! “
. “<BR>” . “PHP can do math: “ . (8*10);?>
• Displays:I love PHP!PHP can do math: 80
22
Comments
• You can add human-readable text to your programs:
• // will tell PHP to ignore the rest of the line• <?php
// I love PHP! :) echo (8*10); // I can’t add :(
?>• Displays: 80
23
Comments
• Multiple lines are possible, just start a comment with /* and end with */
• <?php /* I love PHP! :) PHP Programming is fun! */
echo (8*10); /* I can’t add */?>
• Displays: 80
24
Variables!
• Variables let you save a value to use/modify later on.
• In PHP to make a variable, assign it a value. Precede variable names with a $ sign to indicate that it’s a variable.
• $foo = 5+5; // $foo is 10
• $bar = 5+$foo; // $bar is 15
25
Valid Variable Names
• Variable names start with a letter or underscore• Then followed by any number of letters,
numbers, or underscores• Names are case-sensitive ($a is not $A)
• $asdf = valid• $_5asdf = valid• $5asdf = NOT valid• $asdf != $aSdF
26
Reserved Names
• Some variable names are reserved by PHP
• $GLOBALS• $_SERVER• $_GET• $_POST• $_COOKIE• $_FILES• $_ENV• $_REQUEST• $_SESSION
27
Using Variables
• As shown, we can do assignment and such:• $foo = 5; $bar = $foo + 1;• Other ways of doing assignment:• $foo++; // Increases foo by one• $foo+=2; // Increases foo by two• $foo*=2; // Multiples foo by two• $foo /=2; // Divides foo by two• $foo -=2; // Subtracts foo by two
28
More uses
• We can use variables in functions:$foo = 5;echo “Foo is $foo”;
• Same thing as:$foo = 5;echo “Foo is “ . $foo;
• Echo automatically converts $foo to its value when using double quotes (“), when using single quotes, do string concatenation
• $foo = 5;echo ‘Foo is ‘ . $foo;
31
A little about ++
• The ++ operator is neat in that not only does it increase the variable, it can be used inside of commands!
• ++ before a variable: increases variable, and function is given NEW value
• ++ after a variable: increases a variable, and function is given OLD value
• $foo = 2; $bar = 2;echo “Foo is: “ . $foo++;echo “ - Bar is: “ . ++$bar;// Now Foo and Bar are both 3 in memory
• Outputs Foo is: 2 – Bar is: 3
32
What does this program do?
• $1var = 1;$2var = $1var++;echo “2var is $2var”;
• Displays: PARSE ERROR! (Haha!)
• $a = 1;$b = $a++;echo “b is $b”;
• Displays: b is 1
33
Conditionals
• if (conditional) { result };• Evaluates conditional, and if TRUE, then does
result commands.• We use conditional operators, such as:
– == for equals– != for not equals– > for greater– < for less than– >= for greater than or equal– <= for less than or equal
34
Example
• $bar = 2; if ($bar == 2) { echo “Bar is 2, yay! ”; echo “w00t!”; }
Displays: Bar is 2, yay! w00t!
36
Only one command?
• $foo = 3;$bar = 300;if ($foo > $bar)
echo “foo is big!”;
• You may omit the { and } if you only have one command. Don’t forget to use them when you have two commands or more!
37
Another Example
• $foo = 2;if ($foo != 2)
echo “Foo is not two ”;echo “Foo is still not two”;
• Displays Foo is still not two
• Be careful not to forget brackets. Tabbing your code will help you find these logic errors!
38
Else
• You can also specify what to do if the If conditional is FALSE
• if (condition) { result } else { result }• $foo = 5;
if ($foo != 5){
echo “Foo isn’t five!”;} else {
echo “Foo IS five!”;}
• Displays: Foo IS five!
40
Arrays• In PHP, Arrays are actually quite easy to use,
and very powerful (you’ll see why in a minute!)• We map keys to values.
array( [key =>] value , ... )
• key may be an integer or string• value may be any value
41
Array Example
• $arr = array("foo" => "bar", 12 => true);echo $arr["foo"]; // barecho $arr[12]; // true
• So we see that arrays are just like variables, except that they also contain a collection of variables themselves. (Arrays can even have arrays in them!)
42
More Array Examples
• $arr = array(5 => 1);$arr[5]++;echo $arr[5]; // 2$arr[5] = 10;echo $arr[5]; // 10
$arr[“foo”] = 5; // New entry!echo $arr[“foo”]; // 5
43
Deleting from Array
• Use unset() to delete from array
• $arr = array(0=>“foo”, 1=>“bar”);echo $arr[0]; // fooecho $arr[1]; // barunset($arr[0]); // deletes 0=>”foo”unset($arr); // deletes entire array
44
Auto-numbering
• If you don’t specify a key, PHP assumes the largest key used + 1 (or zero if the largest + 1 is negative) Example:
array(5 => 43, 6 => 32, 7 => 56, "b" => 12); array(5 => 43, 32, 56, "b" => 12);
• These are identical!
45
More Auto-Numbering
$array = array(0, 1, 2, 3, 4);
$array[] = 5;
Now [0] => 0, [1] => 1, etc (including 5)
• Tip: Use print_r($array); command to display an array in human-readable form.
• Note: Even if you were to delete 0-5, the next key automatically assigned would still be 6. To fix this, use array_values($array)
46
Forms (User Input)
• Often times we want to get user input from HTML forms. Here’s an example of a simple form:
• <form name=“testform” method=“get” action=“test.php”>What is your name:<input type=“text” name=“username”><input type=“submit” value=“Go!”></form>
• Should result in a form with a textbox to enter your name and a “Go!” button.
47
Post & Get Refresher
• Remember: POST method puts data into the browser’s request– Transparent to user
• GET method puts form data into browser string– Urls look like this:
• Pagename.php?key1=value1&key2=value2
– For our form, we use GET, so if a user enters “Palazzo” at the prompt:
• Test.php?username=Palazzo
49
What does a web server do?
• A web server serves files to clients (such as the browser)
• Files may be HTML, GIFs, video, PDF
• Serves multiple clients at the same time
• Transfer protocol: HTTP
50
Apache model
• Provides multiple processes to handle simultaneous requests
• Throttles the number of child processes
• Crashing a child process doesn’t crash the server; the parent is very stable
• Memory leaks don’t take down the machine; memory freed when child exits
51
Apache: Installation
• Your don’t need Linux
• See: http://www.mcs.csuhayward.edu/~bhecker/CS-3520/Tools/PHP/Installing PHP under Windows.doc
• CS-3520/Tools/PHP directory contains everything that you need for the install