november 2003bent thomsen - fit 6-11 it – som værktøj bent thomsen institut for datalogi aalborg...

31
November 2003 Bent Thomsen - FIT 6-1 1 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

Upload: hugo-park

Post on 01-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 1

IT – som værktøj

Bent Thomsen

Institut for Datalogi

Aalborg Universitet

Page 2: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 2

Introduction to PHP

Bent Thomsen

Page 3: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 3

What is PHP?

• PHP is a generalized Open Source Server Side Scripting Language that generates HTML content

• PHP: Recursive Acronym for – PHP: Hypertext Preprocessor

• PHP was created by Rasmus Lerdorf in 1994 as a tool for Web Development

• PHP is simple for beginners, yet a powerful tool for the professional Web Developer

Page 4: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 4

Embedding PHP in HTML is different from writing a script or program in other languages like Perl, Java or C#, but similar to JavaScript

Instead of writing a program with lots of commands to output HTML, you write an HTML script with some embedded code to do something (in the example on the next page, to output some text).

The PHP code is enclosed in start and end tags that allow you to jump into and out of "PHP mode".

An example follows

Page 5: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 5

Embedding PHP in HTML

<HTML> <HEAD> <TITLE>A PHP Example</TITLE> </HEAD> <BODY> <H3>First PhP Script</H3> <?PHP print(“Hello World”); ?> </BODY></HMTL>

Page 6: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 6

PHP Structures

• A PHP script begins (and ends) with a tag that inform the Web server that it is dealing with a PHP program.

• This tag is represented as <?php … ?>– Alternatively, you can use:

<script language="PHP">…</script>

• A PHP script is save as a *.php file

Page 7: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 7

Continue …

• Every script-line must ends with a semi-colon (;)

• Documentation can be added using the “//” or “/* … */” comment tags– “//” for single line comment– “/*…*/” for multiple lines comment

Page 8: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 8

PHP Script Example

<?php

// This is a very simple script that simply

// output the sentence “Hello World!”

print (“Hello World!”);

?>

Opening Tag

Comment

Closing Tag

Semi-colon

Page 9: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 9

PHP Program

• In general, a program consists of commands and values.– Commands: what the program can do.– Values are the information that commands are

performed with.

• PHP is no exception.e.g. print (“Hello”);

This statement performs the print() command using the value “Hello”

Page 10: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 10

Print() Function

• Print () is use to send text to the browser.

• Another function, echo() behaves the same as Print().

• Print() can also be use to send HTML formatted text to the browser.– Print(“<H2>Hello World</H2></BR>”);

Page 11: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 11

PHP vs. JavaScript• What distinguishes PHP from client-side

JavaScript?

• PHP code is executed on the server.

• If you were to have a script similar to the above on your server, the client would receive the results of running that script, with no way to determine what the underlying code may be.

Page 12: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 12

Client-side execution using JavaScript

Web-ServerJavaScript

WWWWeb-Browser

HTML Page...<SCRIPT ...>...

Web-Client

Page 13: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 13

Server-side execution using PHP ScriptServer-side execution using PHP Script

Web-Client Web-Server

PHPScript

HTML-Form SubmitForm Data

Call PHPinterpreter

Response Response

Web-Browser WWW

Reply

Page 14: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 14

PHP & Web ServersPHP supports most web servers including•Apache•Microsoft Internet Information Server• Personal Web Server•Netscape and iPlanet servers•Oreilly Website Pro server•Caudium, Xitami, OmniHTTPd

For most servers PHP has a module, for the others supporting the CGI standard, PHP can work as a CGI processor.

Page 15: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 15

PHP VARIABLES

• PHP keeps variables easy to work with• Syntax is minimal• All PHP variables start with $• Variable names are case sensitive• Strings, integers, floating-point, arrays• Variables generally come from 3 places

– Assigned within a script– Passed from an HTML page– Or from the PHP environment

Page 16: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 16

PHP VARIABLES

• PHP does not require explicit variable declarations

• Use a variable, and it exists!• Examples of variable declaration in PHP

– $a = “this is a string”; //this is a string– $b = 4; //this is an integer– $c = 3.1415; //this is a floating point number– $d = “5”; //this is another string

Page 17: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 17

PHP Is Flexible

• $g = $b + $d ; echo $g will print 9 (See Preceding Slide)

$m = 7; // $m is an integer

$n = 1.732; // $n is double floating point

$p = $m + $n; //$p is also a double floating point variable

Page 18: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 18

The = sign

• Use = to indicate an assignment statement:– $X = 4;

• Use = = for comparison:– If($X==4);

Page 19: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 19

More on Strings

• $my_name = “Peter”;• $statement = “Hello, my name is $my_name”;

– This expands the variable $my_name

• So the Echo $statement;

Will print, “Hello, my name is Peter”

If you want to include any of the following characters in your string you must first escape each with backslashes “ \ $

Page 20: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 20

Operators

• Assignment (=) – returns a value equal to the value that was assigned: $a = ($b = 5);

• Arithmetic: + - * \ %• Concatenation: “now”.“one String”• Comparison: == != > >= < <=

• Logical: || or xor && and !

Page 21: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 21

Operator Presedence• (cast)• * \ %• + -• < <= > >=• == !=• &&• ||• = • and• xor• or

Can be changed by using parentheses

e.g.

2*5+6

2*(5+6)

Page 22: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 22

Constants

• You indicate that a label is to represent a constant by:

define(‘CONSTANT_NAME’,value) ordefine(‘CONSTANT_NAME’,value,true)

• When the third parameter is present and true then the parameter label can be used in either upper or lower case

e. g.

define(‘PI’,3.1412,true)

defines a constant PI and another pi that both have the value 3.1412

Page 23: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 23

Statements• Function calls: print(“hello”);• Assignment statements: $first = “first one”;• If/Then/Else statement:

if (expression){ true_part } else { false_part }

• While statement: while (expression){ repeated_part }

• For statement: for (init; test; update){ repeated_part }

Page 24: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 24

If/Then/Else• If/Then/Else statement:

if (expression){ true_part } else { false_part }

• Used to conditional execute part of a PhP script• The else part is optional• Example:if ($num == 1) { $end = “st”; }else if ($num == 2 or $num ==3) { $end = “ed”; }else { $end = “th”; }print (((string)$num).$end);

Page 25: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 25

While• While statement:

while (expression){ repeated_part }

• Loop, that is repeat all the enclosed PhP statements, while the condition is true

• Example:$count = 0;while ($count < 10){ print(“the count is $count <br>”);

$count = $count + 1;}

Page 26: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 26

For• For statement:

for (init; test; update){ repeated_part }

• Execute the init statement, then test the condition; then repeat the loop

• In the loop, as long as the condition is true, execute the statements in the body; then execute the update statement; then test the condition

• Example: for ($n = 1; $n < 10; $n = $n + 1){ print (“the count is $n <br>”);}

• Example: for ($n = 1; $n < 10; $n++){ print (“the count is $n <br>”);}

Page 27: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 27

Array Examples

• Creating a simple Array$class = array (“Web Programming II”, “CS463”, “MWF”);

• Creating an Associative Array$ranks ( “first” =>1,

“second” =>2,“third” =>3 );

• Heterogeneous Array$studentA = array ( “StudentA”, “Sr”, 3.4, 103);

• Printingecho class[2]; // echo out the second element: prints “CS463”;echo ranks[3]; // echo out the third element: prints 3;echo studentA[4]; // echo out the cumulative credits: prints 103;

Page 28: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 28

Array - multidimensional• creating

$students = array( array( “StudentA”, “FR”, 3.0),array( “StudentB”, “JR”, 2.8),array( “StudentC”, “SR”, 3.3) );

• Printingprint $student[2][0]; //prints “StudentC”

• More sophisticated?$students2 = array(

“StudentA” => array( “Year”=>”FR”, “GPA”=>3.0),“StudentB” => array( “Year”=>”JR”, “GPA”=>2.8),“StudentC” => array( “Year”=>”SR”, “GPA”=>3.3) );

• Printingprint $students2[“StudentB”][“GPA”]; // prints 2.8

Page 29: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 29

Functions

• Functions denote actions that can be taken (on your behalf) by php

• Example

print(“This is some text”);• Functions can be parts of an expression

• Functions have one or more arguments (the part inside the parentheses)

• The values of the arguments are past to the functions that do something with them (“side effects”)

• A Function may return a value (example shortly)

Page 30: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 30

More Functions

• Built-in functions: – print, round, sqrt, cos, rand, …

• Use defined functionsfunction diff($par1,$par2){

if ($par1 > $par2){return $par1 - $par2;

} else {return $par2 - $par1;

}}

Page 31: November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet

November 2003 Bent Thomsen - FIT 6-1 31

An example <?php/* First define functions

use them later */function diff($par1,$par2){

if ($par1 > $par2){return $par1 - $par2;

} else {return $par2 - $par1;

}}

echo “The difference between 5 and 10 is”;echo diff(5,10); ?>