46
Introduction to PHP Jussi Pohjolainen TAMK University of Applied Sciences

Introduction to PHP

Embed Size (px)

Citation preview

Page 1: Introduction to PHP

Introduction to PHP

Jussi PohjolainenTAMK University of Applied Sciences

Page 2: Introduction to PHP

WEB PROGRAMMING CONCEPTS

Page 3: Introduction to PHP

Three-tiered Web Site: LAMPClientUser-agent: Firefox

ServerApache HTTP Server

example requestGET / HTTP/1.1Host: www.tamk.fiUser-Agent: Mozilla/5.0 (Mac..)...

response

DatabaseMySQL

PHPPHP

Page 4: Introduction to PHP

Java EE Architecture

(x)html / xml

Applet

ClientApplication

J2EE Application Server

Web Container

Servlets JSPJSPsServlets

EJB Container

RM

I/IIOP

JND

I

JTA

JDB

C

JMS

Java

Ma

il

JAF

Session Beans

Entity BeansMsg-Driven Beans

RM

I/IIOP

JND

I

JTA

JDB

C

JMS

Java

Ma

il

JAF

HTTP(S)JDBC

JavaMail

RMI

IIOP

JNDI

JMS

DB

Java-Application

CORBAServer

Message Queue

Directory Service

Client

Mail Server

Page 5: Introduction to PHP

Server Side Techniques

• Server side scripting requires installation on the server side

• Typically client siis only xhtml and it unaware that the xhtml was produced by a server side script

• Does not require any installations or add-ons on the client

Page 6: Introduction to PHP

Server Side Techniques

• PHP• Java EE: Servlet, JSP• .NET• CGI / Perl (Very old)• Ruby• …

Page 7: Introduction to PHP

Client Side Techniques

• Requires that the client supports the technique

• JavaScript, Applet, Flash…

Page 8: Introduction to PHP

Web Application Frameworks

• A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services.

• Numerous frameworks available for many languages

Page 9: Introduction to PHP

Web App vs. Web Site?

• What’s the difference between Web App and Web Site?

• Rich Internet Application?, AJAX?, Thin Client?• Full application running in your browser or

just a web site?

Page 10: Introduction to PHP

PHP: HYPERTEXT PREPROCESSOR

Page 11: Introduction to PHP

Introduction to PHP

• PHP is a computer scripting language.• Originally designed for producing dynamic web pages• Appeared in 1995• PHP Group is responsible for the language, no formal

specification• Free software• Runs on most operating systems and platforms• URL: http://www.php.net

Page 12: Introduction to PHP

Response

Page 13: Introduction to PHP

Introduction to PHP Syntax

• PHP has quite easy syntax, if you are familiar with any c-type language

• It has all the same structures that you are familiar with other programming languages

• PHP is designed to output to browser, but it is possible to do also CLI apps.

Page 14: Introduction to PHP

Example

<?php

print "What is your name?\n";

$name = trim(fgets(STDIN));

print "Hello " . $name;

?>

Page 15: Introduction to PHP

Variables

• Variables in PHP are represented by a dollar sign

• PHP supports eight types:– boolean, integer, float, double, array, object,

resource and NULL

Page 16: Introduction to PHP

Example (php.net)<?php

$a_bool = TRUE; // a boolean

$a_str = "foo"; // a string

$a_str2 = 'foo'; // a string

$an_int = 12; // an integer

echo gettype($a_bool); // prints out: boolean

echo gettype($a_str); // prints out: string

// If this is an integer, increment it by four

if (is_int($an_int)) {

$an_int += 4;

}

// If $bool is a string, print it out

// (does not print out anything)

if (is_string($a_bool)) {

echo "String: $a_bool";

}

?>

Page 17: Introduction to PHP

Naming Variables

• Case-sensitivity• Start with letter or _• After that you can have numbers, letters and _

– $var = 'Bob';– $Var = 'Joe';– print "$var, $Var";     – $4site = 'not yet';    – $_4site = 'not yet';   

Page 18: Introduction to PHP

Constants

• You cannot alter the value of constant after declaration– define(CONSTANT, "value");– print CONSTANT;

Page 19: Introduction to PHP

Magic Constants

• PHP has lot of predefined variables• Also predefined constants:

– __LINE__– __FILE__– __FUNCTION__– __CLASS__– __METHOD__

• See: http://fi.php.net/manual/en/language.constants.predefined.php

Page 20: Introduction to PHP

Scope

<?php

$a = "Pekka";

print ”My name is " . $a;

?>

Page 21: Introduction to PHP

Scope

<?php

$a = "Pekka";

function Test() {

print $a;

}

print ”My name is ”;

Test();

?>

Page 22: Introduction to PHP

Scope

<?php

$a = "Pekka";

function Test() {

global $a;

print $a;

}

print ”My name is ”;

Test();

?>

Page 23: Introduction to PHP

Control Structures

• If, else, elseif, switch• while, do-while, for• foreach• break, continue•

Page 24: Introduction to PHP

PHP BASICS

Page 25: Introduction to PHP

Strings

• Single quoted: 'this is a $variable'• Double quoted: "this is a $variable"• Heredoc:

– $str = <<<EOD– Example of string– spanning multiple lines– using heredoc syntax.– EOD;

Page 26: Introduction to PHP

Modifying the String

• $mj = "moi";• print $mj[0];• $mj[0] = 'x';• print $mj;• $mj = $mj . " hei";• print $mj;• $mj .= " terse";• print $mj;

Page 27: Introduction to PHP

String functions

• A lot of functions…– http://www.php.net/manual/en/ref.strings.php

Page 28: Introduction to PHP

Statements

• Every statement ends with ;– $a = 5;– $a = function();– $a = ($b = 5);– $a++; ++$a;– $a += 3;

Page 29: Introduction to PHP

Operators

• Arithmethic: +,-,*,%• Setting variable: =• Bit: &, |, ^, ~, <<, >>• Comparison: ==, ===, !=, !==, <, > <=, >=

Page 30: Introduction to PHP

Ternary Operator

$variable = (1 < $x) ? 'value1' : 'value2';

Equals

if(1 < $x) {

$variable = 'value1';

}

else {

$variable = 'value1';

}

Page 31: Introduction to PHP

Execution Operator

• Execute command in shell– $result = `ls -al`;– print $result;

• Does the same than shell_exec() - function

Page 32: Introduction to PHP

Logical Operators

• $a and $b• $a or $b• $a xor $b• !$a;• $a && $b;• $a || $b;

Page 33: Introduction to PHP

String Operators

• Two operators for strings: '.' and '.='• '.' – combining strings.• '.=' – appends string to the end.• Example:• $v= "Hello" . $b;• $v.= "Hello";

Page 34: Introduction to PHP

Arrays

• See – http://php.tpu.fi/~pohjus/lectures/php/php-

arrays.html

Page 35: Introduction to PHP

CONTROL STRUCTURES

Page 36: Introduction to PHP

IF<?php

if ($a > $b) {

   echo "a is bigger than b";

} else {

   echo "a is NOT bigger than b";

}

if ($a > $b) {

   echo "a is bigger than b";

} elseif ($a == $b) {

   echo "a is equal to b";

} else {

   echo "a is smaller than b";

}

?>

Page 37: Introduction to PHP

While and Do-While

<?php

$a=0;

while($a<10){

print $a; $a++;

}

$i = 0;

do {

   print $i;

} while ($i > 0);

?>

Page 38: Introduction to PHP

For

for ($i = 1; $i <= 10; $i++) {

   print $i;

}

Page 39: Introduction to PHP

Foreach

$arr = array(1, 2, 3, 4);

foreach ($arr as $value) {

   echo $value;

}

Page 40: Introduction to PHP

Switch

switch ($i) {

case 0:

   echo "i equals 0";

   break;

case 1:

   echo "i equals 1";

   break;

case 2:

   echo "i equals 2";

   break;

}

Page 41: Introduction to PHP

PHP COMBINED WITH XHTML

Page 42: Introduction to PHP

Response

Page 43: Introduction to PHP

Example: spaghetti-way<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>xhtml-doku</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>

<h1>Title</h1>

<?php

print "<p>Hello from PHP!</p>";

?>

</body>

</html>

Page 44: Introduction to PHP

Better ways

• Use functions• Use OO

Page 45: Introduction to PHP

PHP AND USER INPUT

Page 46: Introduction to PHP

PHP and User Input via Forms

• See– http://php.tpu.fi/~pohjus/lectures/php/forms-

and-php.html