PHP Basics - PowerPoint PPT Presentation

About This Presentation
Title:

PHP Basics

Description:

PHP Basics PHP PHP is a scripting language that allows you to create dynamic web pages You can embed php scripting within normal html coding PHP was designed ... – PowerPoint PPT presentation

Number of Views:100
Avg rating:3.0/5.0
Slides: 44
Provided by: JasonC51
Category:
Tags: php | basics | break | passwords

less

Transcript and Presenter's Notes

Title: PHP Basics


1
PHP Basics
2
PHP
  • PHP is a scripting language that allows you to
    create dynamic web pages
  • You can embed php scripting within normal html
    coding
  • PHP was designed primarily for the web
  • PHP includes a comprehensive set of database
    access functions

3
Scripting vs Programming
  • A script is interpreted line by line every time
    it is run
  • A true programming language is compiled from its
    human readable form(source code) into a machine
    readable form (binary code) which is delivered to
    the user as a program.
  • Variables in scripting languages are typeless
    whereas variables in programs need to be declared
    as a particular type and have memory allocated to
    them.
  • PHP requires programming skills
  • PHP web sites should be developed within a
    software engineering framework

4
PHP Competitors
  • Perl
  • Microsoft Active Server Pages (ASP)
  • Java Server Pages (JSP)
  • Cold Fusion
  • It would be good to work together to make
    equivalent code libraries across scripting
    languages
  • Eg. Web Services.

5
PHP Code Examples
  • lt?php
  • name "Lisa"
  • date date ("d-m-Y",
    time())
  • ?gt
  • lthtmlgt
  • ltheadgt
  • lttitlegtHello
    Worldlt/titlegt
  • lt/headgt
  • ltbodygt
  • lth1gtHello Worldlt/h1gt
  • ltpgtIt's lt?php echo date
    ?gt and all is well. lt/pgt
  • lt?php
  • echo "ltpgtHello
    ".name.".lt/pgt\n"
  • ?gt
  • lt/bodygt
  • lt/htmlgt

6
Perl Coding Example
  • !/usr/local/bin/perl
  • print "Content-type text/html \n\n"
  • date /usr/local/bin/date
  • name "Lisa"
  • print "lthtmlgt"
  • print "ltheadgt"
  • print "lttitlegtHello Worldlt/titlegt"
  • print "lt/headgt\nltbodygt"
  • print "lth1gtHello Worldlt/h1gt"
  • print "ltpgtIt\'s date and all is
    welllt/pgt"
  • print "ltpgtHello namelt/pgt"
  • print "lt/bodygtlt/htmlgt"

7
JSP Coding Example
  • lt_at_ page language"java"
  • contentType"text/html" gt
  • lt! String name "Lisa" gt
  • lthtmlgt
  • ltheadgt lttitlegtHello Worldlt/titlegt lt/headgt
  • ltbodygt
  • lth1gtHello Worldlt/h1gt
  • ltpgtIt's lt new java.util.Date().toString() gt
  • and all is well.
    lt/pgt
  • ltpgt Hello lt name gt.lt/pgt
  • lt/bodygt
  • lthtmlgt

8
PHP Strengths
  • High performance
  • - see benchmarks at
    http//www.zend.com
  • Interfaces to different database systems
  • Low cost
  • SourceForge has PHPTriad (Apache, PHP and MySQL)
    for Windows
  • Ease of learning and use
  • Portability
  • available on multiple platforms, Unix and Windows

9
Basics of PHP
  • PHP files end with .php
  • other places use .php3 .phtml .php4 as well
  • PHP code is contained within tags
  • Canonical lt?php ?gt or Short-open lt? ?gt
  • HTML script tags ltscript language"php"gt
    lt/scriptgt
  • Recommend canonical tags so as not to confuse
    with xml tags

10
Include files
  • Files can be inserted into other files using
    include or require
  • These files can have any name and be anywhere on
    the file system so long as the file trying to
    include them has appropriate rights
  • CAVEAT if these files are not called blah.php,
    and they are fetched independently by a browser,
    they will be rendered in plaintext rather than
    passed to the PHP interpreter - not good if they
    contain username/passwords and the like.

11
Include() eg. Note var scope
  • vars.phplt?phpcolor 'green'fruit
    'apple'?gttest.phplt?phpecho "A color
    fruit" // Ainclude 'vars.php'echo "A color
    fruit" // A green apple?gt

12
Output
  • Most things in PHP execute silently
  • You need to explicitly ask PHP to generate output
  • Echo is not a function and cannot return a
    value
  • echo "ltpgtThis is a paragraph.lt/pgt"
  • Print is a function and returns a value
  • 1 success, 0 failure
  • print ("ltpgtThis is a paragraph too.lt/pgt")
  • Use echo or print statements and View Source for
    debugging your code

13
Variables
  • All variables begin with and can contain
    letters, digits and underscore (and no digit
    directly after the )
  • The value of a variable is the value of its most
    recent assignment
  • Dont need to declare variables
  • Variables have no intrinsic type other than the
    type of their current value
  • Can have variable variables variable
  • Like a pointer variable type best to avoid
  • PHP Manual-variables

14
Variables Scope
  • Scope refers to where within a script or program
    a variable has meaning or a value
  • Mostly script variables are available to you
    anywhere within your script.
  • Note that variables inside functions are local to
    that function and a function cannot access script
    variables outside the function even if they are
    in the same file.
  • The modifiers global and static allow function
    variables to be accessed outside the function or
    to hold their value between function calls
    respectively

15
Variable types
  • Strings
  • Numbers
  • Integers
  • doubles
  • Booleans
  • TRUE / FALSE
  • Arrays
  • Objects

16
Variable Examples
  • Integer
  • a 1234 decimal number
  • a -123 a negative number
  • a 0123 octal number (equivalent to 83
    decimal)
  • a 0x1A hexadecimal number (equivalent to 26
    decimal)
  • Floating Point Numbers
  • a 1.234 a 1.2e3 a 7E-10
  • Boolean
  • foo True // assign the value TRUE to foo
  • // is an operator which returns a boolean
  • if (action
    "show_version")
  • echo "The
    version is 1.23"
  • // this is not
    necessary
  • if (show_separators
    TRUE)
  • echo "lthrgt\n"
  • // because you can
    simply type this
  • if
    (show_separators)

17
Variable Examples cont.
  • Strings (single or double quoted)
  • echo 'this is a simple string'
  • echo 'You can also have embedded newlines in
    strings, like this way.'
  • echo 'Arnold once said "I\'ll be back"'
  • // output ... "I'll
    be back"
  • echo 'Are you sure you want to delete C\.?'
  • // output ...
    delete C\.?
  • Arrays
  • error_descriptionsE_ERROR "A fatal error has
    occurred"
  • error_descriptionsE_WARNING "PHP issued a
    warning"
  • error_descriptionsE_NOTICE "This is just an
    informal notice"
  • the last example is in fact the same as writing
  • error_descriptions1 "A fatal error has
    occurred"
  • error_descriptions2 "PHP issued a warning"
  • error_descriptions8 "This is just an
    informal notice"
  • (The first method is useful if E_ERROR is defined
    as a constant etc).

18
Constants and Globals
  • To define a constant
  • define(PI, 3.1416)
  • area PIradiusradius
  • Globals
  • Defined outside any function eg form variables
  • global var1, var2
  • function xyz()
  • localvarX var1

19
Boolean
  • Unlike PHP3, PHP4 has a boolean type
  • if (TRUE) print ("This will always print")
  • A number is FALSE if it exactly equals 0
    otherwise it is TRUE
  • A string is FALSE if it is empty (has zero
    characters) or is "0" otherwise it is TRUE
  • An array or object is FALSE if it contains no
    other values and is TRUE otherwise

20
Arrays in PHP
  • An array in PHP is actually an ordered map which
    maps values to keys. An array can be thought of
    in many ways. Each of the concepts below can be
    implemented in a PHP array, so you can choose
    which ever of these ideas that you understand to
    conceptualise an array.
  • linearly indexed array
  • list (vector)
  • hashtable (which is an implementation
    of a map)
  • dictionary
  • collection
  • stack (LIFO)
  • queue (FIFO)
  • can easily simulate trees and linked
    lists with arrays of arrays

21
Eg Numerically-indexed arrays (Vector array)
  • Say that we have a list of marks out of 100 in a
    subject 95, 93, 56, 70, 65, 98
  • array value 1 - 95
  • array value 2 - 93
  • array value 3 - 56
  • array value 4 - 70
  • array value 5 - 65
  • array value 6 - 98
  • marks array (95, 93, 56, 70, 65, 98)
    generates a numerically-indexed array
  • marks0 95
  • marks1 93
  • marks2 56
  • marks3 70
  • marks4 65
  • marks5 98

22
Example Numerically-indexed arrays (cont)
  • The following code also generates a
    numerically-indexed array, allocating the next
    index after the highest current index to the
    element.
  • marks 95
  • marks 93
  • marks0 is 95 and marks1 is 93.
  • Note that array indexes start at 0 by default.
  • You can skip indices by allocating a specific
    index to a value -
  • marks5 56
  • marks 70
  • will allocate 70 to marks6.
  • marks5 is 56 and marks6 is 70.

23
Associative arrays
  • Say we have a list of marks out of 100 in a
    subject and we want to know who got what mark
  • Adrian - 95, Matty - 93, Lance - 56, Stephen -
    70, Craig - 65, Andy - 98
  • marks array ("Adrian"gt93, "Lance"gt56,
    "Stephen"gt70, "Craig"gt65, "Andy"gt98)
  • maps a value to a key
  • name is the key (Adrian,Lance etc)
  • mark is the value (93, 56 etc)

24
List an associative array
  • list() in conjunction with each() assigns a key /
    value pair into the variables key and variable.
    The following code prints each key / value pair
    into a table. Note that value might itself be an
    array.
  • reset(marks) // go to the beginning of the
    array
  • echo "lttable border\"1\"gt //note escape
    sequences
  • while (list(key, value) each(marks))
  • echo "lttrgtlttdgtkeylt/tdgtlttdgtvaluelt/tdgtlt/trgt\n"
  • echo "lt/tablegtlthrgt"

25
List an associative array (cont)
  • each() actually returns an array for each array
    item which includes the key and value as well as
    the index 0 mapped to the key and the index 1
    mapped to the value. Reset() puts the index
    pointer back to 0. Hence if you are more
    comfortable with numeric indexes, you can do the
    following
  • reset(marks)
  • while (row each(marks))
  • echo "Mark for row0 is
    row1ltbr /gt"

26
Array functions
  • Foreach is another way to iterate through an
    array.
  • foreach (marks as index gt mark )
  • echo ltbrgt index gt mark
  • Index Pointer manipulation
  • Current() mark current(marks)
  • Next() nextmark next(marks)
  • Prev() prevmark prev(marks)
  • Sorting
  • Sort() asort() rsort() etc

27
Strings
  • Dot operator for concatenation (joining)
  • singly quoted read in and store literally
  • double quoted allow for variable substitution
  • certain sequences beginning with \ are replaced
    with special characters \n \t \r \ \" \\
  • Variable names are replaced with string
    representations of their values
  • Variable interpolation
  • No limit on string length

28
String Functions
  • boolean strcmp (str1, str2)
  • boolean strcasecmp (str1, str2)
  • boolean strstr (str1, str2)
  • boolean stristr (str1, str2)
  • int strlen(str)
  • string substr (str, start_pos, len)

29
String functions (cont)
  • string chop (str)
  • string ltrim (str)
  • string trim (str)
  • string str_replace (old_txt, new_txt, text)
  • string substr_replace (old_txt, new_txt, text)
  • strtolower(str)
  • strtoupper(str)
  • ucfirst(str)
  • ucwords(str)
  • these last two dont correct inappropriate upper
    case to lower case

30
Formatting User Input/Output
  • addslashes(str)
  • stripslashes(str)
  • magic_quotes_gpc(str)
  • not magic_quotes_runtime(query)
  • escapeshellcmd(str)
  • strip_tags(str)
  • htmlspecialchars(str)
  • htmlentities(str)
  • nl2br(str)
  • Urlencode()
  • Rawurlencode() etc

31
Maths functions
  • - /
  • --
  • -
  • is set to (assignment)
  • is equivalent to eg a b Equal TRUE if
    a is equal to b.
  • is identical to eg a b Identical TRUE
    if a is equal to b, and they are of the same
    type. (PHP 4 only)
  • low_int floor (double)
  • high_int ceil (double)
  • nearest_int round (double)
  • (nearest even number if exactly .5)
  • positive abs (number)
  • min min (n1, n2 , nn)
  • max max (n1, n2 , nn)

32
Control and flow
  • if (expr1)
  • elseif (expr2)
  • else
  • while (cond)
  • do while (cond)
  • switch (var)
  • case a
  • case b
  • for (i 0 i lt expr i )
  • foreach (array_expr as value)
  • foreach (array_expr as keygtvalue)
  • break 1
  • continue

33
If.. Then.. else
  • if (a gt b) print "a is bigger than b"
  • if (a gt b)
  • print "a is
    bigger than b"
  • b a
  • if (a gt b)
  • print "a is
    bigger than b"
  • elseif (a b)
  • print "a is
    equal to b"
  • else
  • print "a is
    smaller than b"
  • echo "You have i ". (i1 ? "message"
  • "messages"). " in
    your mailbox.\n"

34
While
  • / example 1 /
  • i 1
  • while (i lt 10)
  • print i /
    the printed value would be

  • i before the increment

  • (post-increment) /
  • / example 2 - alternative notation to using
    the braces - and endwhile/
  • i 1
  • while (i lt 10)
  • print i
  • i
  • endwhile

35
For loops
  • / example 1 similar to C syntax / for
    (i 1 i lt 10 i)
  • print i
  • / example 2 / for
    (i 1i)
  • if (i gt 10)
  • break
  • print i
  • / example 3 / i 1
  • for ()
  • if (i gt 10)
  • break
  • print i
  • i
  • / example 4 / for
    (i 1 i lt 10 print i, i)

36
Foreach
  • An easy way to iterate over arrays. There are two
    syntaxes the second is a minor but useful
    extension of the first
  • foreach(array_expression as value) statement
  • foreach(array_expression as key gt value)
    statement
  • The following are functionally identical
  • //example 1 //
  • reset (arr)
  • while (list(,
    value) each (arr))
  • echo "Value
    valueltbrgt\n"
  • //example 2 //
  • foreach (arr as
    value)
  • echo "Value
    valueltbrgt\n"

37
Foreach cont.
  • / foreach example 1 value only /
  • a array (1, 2, 3, 17)
  • foreach (a as v)
  • print "Current value of \a v.\n"
  • / foreach example 2 value (with key printed
    for illustration) /
  • a array (1, 2, 3, 17)
  • i 0 / for illustrative purposes only /
  • foreach(a as v)
  • print "\ai gt v.\n"
  • i
  • / foreach example 3 key and value /
  • a array ( "one" gt 1, "two" gt 2, "three" gt
    3, "seventeen" gt 17 )
  • foreach(a as k gt v)
  • print "\ak gt v.\n"

38
Break Continue
  • -break ends execution of the current for, foreach
    while, do..while or switch structure.
  • arr array ('one', 'two', 'three', 'four',
    'stop', 'five')
  • while (list (key, val) each (arr))
  • if (val 'stop')
  • break / You could also write 'break
    1' here. /
  • echo "valltbrgt\n"
  • / note list() is a multiple assignment
    function the key and value returned by each()
    are assigned to key and value. key is not used
    in this example.
  • -continue is used within looping structures to
    skip the rest of the current loop iteration and
    continue execution at the beginning of the next
    iteration.

39
Switch
  • if (i 0) print "i equals 0"
  • if (i 1) print "i equals 1"
  • if (i 2) print "i equals 2"
  • / this is equivalent /
  • switch (i)
  • case 0
  • print "i equals 0"
  • break
  • case 1
  • print "i
    equals 1"
  • break
  • case 2
  • print "i
    equals 2"
  • break

40
require() and include()
  • require() includes and evaluates a specific file.
  • require() and include() are identical in every
    way except how they handle failure. include()
    produces a Warning while require() results in a
    Fatal Error.
  • lt?php
  • require 'prepend.php'
  • require somefile
  • require ('somefile.txt')
  • ?gt
  • require_once() or include_once() should be used
    in cases where the same file might be included
    and evaluated more than once during a particular
    execution of a script, and you want to be sure
    that it is included exactly once to avoid
    problems with function redefinitions, variable
    value reassignments, etc.

41
Running an Apache PHP web server on SNG
  • you have an SNG account
  • login to your account using telnet
  • your home directory on sng is something like
    /cc/staff1/l/lzwise/ (you can use pwd to find out
    the exact path to your directory)
  • think of a number between 5000 and 10000 which no
    one else has thought of (to use as a port number)
  • run the command makeserver and set the scratch
    directory
  • run the command startserver
  • you may see this error kill 1044559 no such
    process - ignore it -)
  • stop the server with the command stopserver

42
/usr/local/bin/makeserver.readme
  • It creates serveral files/directories
  • Files (root /scratch/username)
  • root/apache/httpd.conf
  • root/apache/stopserver
  • root/apache/startserver
  • Directories
  • root/apache/logs
  • root/apache/cgi-bin
  • root/apache/htdocs
  • All of the directories start empty. The access
    and error logs will be created in the logs
    directories once the server is running.
  • Content should be added to the htdocs directory.

43
Examples of PHP
  • Examples of PHP at zend.com - code gallery
  • http//www.zend.com/zend/tut/
  • http//www.phpbuilder.com/ see code library
  • http//www.eltcalendar.com/stuff/convert.php
Write a Comment
User Comments (0)
About PowerShow.com