SlideShare a Scribd company logo
Php classes in mumbai
Introduction to php 
By 
K1/ 4, Second floor, Sector-15/16 Market, 
Vashi, Navi Mumbai 
www.vibranttechnologies.co.in 
Mob No: 
9892900103 
9892900173
What we'll cover 
• A short history of php 
• Parsing 
• Variables 
• Arrays 
• Operators 
• Functions 
• Control Structures 
• External Data Files
Background 
• PHP is server side scripting system 
• PHP stands for "PHP: Hypertext Preprocessor" 
• Syntax based on Perl, Java, and C 
• Very good for creating dynamic content 
• Powerful, but somewhat risky! 
• If you want to focus on one system for dynamic 
content, this is a good one to choose
History 
• Started as a Perl hack in 1994 by Rasmus Lerdorf 
(to handle his resume), developed to PHP/FI 2.0 
• By 1997 up to PHP 3.0 with a new parser engine 
by Zeev Suraski and Andi Gutmans 
• Version 5.2.4 is current version, rewritten by Zend 
(www.zend.com) to include a number of features, 
such as an object model 
• Current is version 5 
• php is one of the premier examples of what an 
open source project can be
About Zend 
• A Commercial Enterprise 
• Zend provides Zend engine for PHP for free 
• They provide other products and services for a fee 
• Server side caching and other optimizations 
• Encoding in Zend's intermediate format to protect 
source code 
• IDE-a developer's package with tools to make life 
easier 
• Support and training services 
• Zend's web site is a great resource
PHP 5 Architecture 
• Zend engine as parser (Andi Gutmans and Zeev Suraski) 
• SAPI is a web server abstraction layer 
• PHP components now self contained (ODBC, Java, 
LDAP, etc.) 
• This structure is a good general design for software 
(compare to OSI model, and middleware applications) 
image from http://www.zend.com/zend/art/intro.php
PHP Scripts 
• Typically file ends in .php--this is set by the web 
server configuration 
• Separated in files with the <?php ?> tag 
• php commands can make up an entire file, or can 
be contained in html--this is a choice…. 
• Program lines end in ";" or you get an error 
• Server recognizes embedded script and executes 
• Result is passed to browser, source isn't visible 
<P> 
<?php $myvar = "Hello World!"; 
echo $myvar; 
?> 
</P>
Parsing 
• We've talk about how the browser can read a text 
file and process it, that's a basic parsing method 
• Parsing involves acting on relevant portions of a 
file and ignoring others 
• Browsers parse web pages as they load 
• Web servers with server side technologies like php 
parse web pages as they are being passed out to 
the browser 
• Parsing does represent work, so there is a cost
Two Ways 
• You can embed sections of php inside html: 
<BODY> 
<P> 
<?php $myvar = "Hello World!"; 
echo $myvar; 
</BODY> 
• Or you can call html from php: 
<?php 
echo "<html><head><title>Howdy</title> 
… 
?>
What do we know already? 
• Much of what we learned about javascript 
holds true in php (but not all!), and other 
languages as well 
$name = "bil"; 
echo "Howdy, my name is $name"; 
echo "What will $name be in this line?"; 
echo 'What will $name be in this line?'; 
echo 'What's wrong with this line?'; 
if ($name == "bil") 
{ 
// Hey, what's this? 
echo "got a match!"; 
}
Variables 
• Typed by context (but one can force type), so it's 
loose 
• Begin with "$" (unlike javascript!) 
• Assigned by value 
• $foo = "Bob"; $bar = $foo; 
• Assigned by reference, this links vars 
• $bar = &$foo; 
• Some are preassigned, server and env vars 
• For example, there are PHP vars, eg. PHP_SELF, 
HTTP_GET_VARS 00
phpinfo() 
• The phpinfo() function shows the php 
environment 
• Use this to read system and server 
variables, setting stored in php.ini, versions, 
and modules 
• Notice that many of these data are in arrays 
• This is the first script you should write… 
00_phpinfo.php
Variable Variables 
• Using the value of a variable as the name of 
a second variable) 
$a = "hello"; 
$$a = "world"; 
• Thus: 
echo "$a ${$a}"; 
• Is the same as: 
echo "$a $hello"; 
• But $$a echoes as "$hello"…. 
00_hello_world.php
Operators 
• Arithmetic (+, -, *, /, %) and String (.) 
• Assignment (=) and combined assignment 
$a = 3; 
$a += 5; // sets $a to 8; 
$b = "Hello "; 
$b .= "There!"; // sets $b to "Hello There!"; 
• Bitwise (&, |, ^, ~, <<, >>) 
• $a ^ $b(Xor: Bits that are set in $a or $b but not 
both are set.) 
• ~ $a (Not: Bits that are set in $a are not set, 
and vice versa.) 
• Comparison (==, ===, !=, !==, <, >, <=, >=)
Coercion 
• Just like javascript, php is loosely typed 
• Coercion occurs the same way 
• If you concatenate a number and string, the 
number becomesa string 
17_coercion.php
Operators: The Movie 
• Error Control (@) 
• When this precedes a command, errors generated are ignored 
(allows custom messages) 
• Execution (` is similar to the shell_exec() 
function) 
• You can pass a string to the shell for execution: 
$$oouuttppuutt == ``llss --aall``;; 
$$oouuttppuutt == sshheellll__eexxeecc((""llss --aall""));; 
• This is one reason to be careful about user set variables! 
• Incrementing/Decrementing 
++$a (Increments by one, then returns $a.) 
$a++ (Returns $a, then increments $a by one.) 
--$a (Decrements $a by one, then returns $a.) 
$a-- (Returns $a, then decrements $a by one.)
Son of the Valley of Operators 
• Logical 
$a and $b And True if both $a and $b are true. 
$a or $b Or True if either $a or $b is true. 
$a xor $b Xor True if either $a or $b is true, 
but not both. 
! $a Not True if $a is not true. 
$a && $b And True if both $a and $b are true. 
$a || $b Or True if either $a or $b is true. 
• The two ands and ors have different 
precedence rules, "and" and "or" are lower 
precedence than "&&" and "||" 
• Use parentheses to resolve precedence 
problems or just to be clearer
Control Structures 
• Wide Variety available 
• if, else, elseif 
• while, do-while 
• for, foreach 
• break, continue, switch 
• require, include, require_once, include_once
Control Structures 
• Mostly parallel to what we've covered 
already in javascript 
• if, elseif, else, while, for, foreach, break and 
continue
Switch 
• Switch, which we've seen, is very useful 
• These two do the same 
things…. 
if ($i == 0) { 
echo "i equals 0"; 
} elseif ($i == 1) { 
echo "i equals 1"; 
} elseif ($i == 2) { 
echo "i equals 2"; 
} 
switch ($i) { 
case 0: 
echo "i equals 0"; 
break; 
case 1: 
echo "i equals 1"; 
break; 
case 2: 
echo "i equals 2"; 
break; 
} 
example from http://us3.php.net/manual/en/control-structures.switch.php
Nesting Files 
• require(), include(), include_once(), require_once() are 
used to bring in an external file 
• This lets you use the same chunk of code in a number 
of pages, or read other kinds of files into your program 
• Be VERY careful of using these anywhere close to user 
input--if a hacker can specify the file to be included, 
that file will execute within your script, with whatever 
rights your script has (readfile is a good alternative if 
you just want the file, but don't need to execute it) 
• Yes, Virginia, remote files can be specified
Example: A Dynamic Table 
• I hate writing html tables 
• You can build one in php 
• This example uses pictures and builds a 
table with pictures in one column, and 
captions in another 
• The captions are drawn from text files 
• I'm using tables, but you could use css for 
placement easily…
Arrays 
• You can create an array with the array function, or use the 
explode function (this is very useful when reading files into 
web programs…) 
$my_array = array(1, 2, 3, 4, 5); 
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; 
$pieces = explode(" ", $pizza); 
• An array is simply a variable representing a keyed list 
• A list of values or variables 
• If a variable, that var can also be an array 
• Each variable in the list has a key 
• The key can be a number or a text label
Arrays 
• Arrays are lists, or lists of lists, or list of lists of 
lists, you get the idea--Arrays can be multi-dimensional 
• Array elements can be addressed by either by 
number or by name (strings) 
• If you want to see the structure of an array, use the 
print_r function to recursively print an array inside 
of pre tags
Text versus Keys 
• Text keys work like number keys (well, 
really, it's the other way around--number 
keys are just labels) 
• You assign and call them the same way, 
except you have to assign the label to the 
value or variables, eg: 
echo "$my_text_array[third]"; 
$my_text_array = array(first=>1, second=>2, third=>3); 
echo "<pre>"; 
print_r($my_text_array); 
echo "</pre>";
Walking Arrays 
• Use a loop, eg a foreach loop to walk 
through an array 
• while loops also work for arrays with 
numeric keys--just set a variable for the 
loop, and make sure to increment that 
variable within the loop 
$colors = array('red', 'blue', 'green', 'yellow'); 
foreach ($colors as $color) { 
echo "Do you like $color?n"; 
} 
05_arrays.php
05_arrays.php 
• You can't echo an 
array directly… 
• You can walk through 
an echo or print() line 
by line 
• You can use print_r(), 
this will show you the 
structure of complex 
arrays--that output is 
to the right, and it's 
handy for learning the 
structure of an array 
Array 
( 
[1] => Array 
( 
[sku] => A13412 
[quantity] => 10 
[item] => Whirly Widgets 
[price] => .50 
) 
[2] => Array 
( 
[sku] => A43214 
[quantity] => 142 
[item] => Widget Nuts 
[price] => .05 
)
Multidimensional Arrays 
• A one dimensional array is a list, a spreadsheet or other columnar data 
is two dimensional… 
• Basically, you can make an array of arrays 
$multiD = array 
( 
"fruits" => array("myfavorite" => "orange", "yuck" => 
"banana", "yum" => "apple"), 
"numbers" => array(1, 2, 3, 4, 5, 6), 
"holes" => array("first", 5 => "second", "third") 
); 
• The structure can be built array by array, or declared with a single 
statement 
• You can reference individual elements by nesting: 
echo "<p>Yes, we have no " . $multiD["fruits"]["yuck"] . " 
(ok by me).</p>"; 
• print_r() will show the entire structure, but don’t fo0r1gae_tatrhrea ypsr.ep htapgs
Getting Data into arrays 
• You can directly read data into individual 
array slots via a direct assignment: 
$pieces[5] = "poulet resistance"; 
• From a file: 
• Use the file command to read a delimited file 
(the delimiter can be any unique char): 
$pizza = file(./our_pizzas.txt) 
• Use explode to create an array from a line 
within a loop: 
$pieces = explode(" ", $pizza);
The Surface 
• The power of php lies partially in the wealth of 
functions---for example, the 40+ array functions 
• array_flip() swaps keys for values 
• array_count_values() returns an associative array of all 
values in an array, and their frequency 
• array_rand() pulls a random element 
• array_unique() removes duppies 
• array_walk() applies a user defined function to each 
element of an array (so you can dice all of a dataset) 
• count() returns the number of elements in an array 
• array_search() returns the key for the first match in an 
array 
08_array_fu.php
Using External Data 
• You can build dynamic pages with just the 
information in a php script 
• But where php shines is in building pages 
out of external data sources, so that the web 
pages change when the data does 
• Most of the time, people think of a database 
like MySQL as the backend, but you can 
also use text or other files, LDAP, pretty 
much anything….
Standard data files 
• Normally you'd use a tab delimited file, but you can 
use pretty much anything as a delimiter 
• Files get read as arrays, one line per slot 
• Remember each line ends in n, you should clean 
this up, and be careful about white space 
• Once the file is read, you can use explode to break 
the lines into fields, one at a time, in a loop….
Standard data files 
• You can use trim() to clean white space and 
returns instead of str_replace() 
• Notice that this is building an array of arrays 
$iitteemmss==ffiillee((""..//mmyyddaattaa..ttxxtt""));; 
ffoorreeaacchh (($$iitteemmss aass $$lliinnee)) 
{{ 
$$lliinnee == ssttrr__rreeppllaaccee((""nn"",, """",, $$lliinnee));; 
$$lliinnee == eexxppllooddee((""tt"",, $$lliinnee));; 
//// ddoo ssoommeetthhiinngg wwiitthh $$lliinnee aarrrraayy 
}}
Useful string functions 
• str_replace() 
• trim(), ltrim(), rtrim() 
• implode(), explode() 
• addslashes(), stripslashes() 
• htmlentities(), html_entity_decode(), 
htmlspecialchars() 
• striptags()
06_more_arrays.php 
• This is a simple script to read and process a text 
file 
• The data file is tab delimited and has the column 
titles as the first line of the file
How it works 
• The script uses the first line to build text labels for 
the subsequent lines, so that the array elements 
can be called by the text label 
• If you add a new column, this script 
compensates 
• Text based arrays are not position dependent… 
• This script could be the basis of a nice function 
• There are two version of this, calling two different 
datafiles, but that's the only difference
06a_more_arrays.php 
• This version shows how to dynamically build a table in the 
html output
Alternative syntax 
• Applies to if, while, for, foreach, and switch 
• Change the opening brace to a colon 
• Change the closing brace to an endxxx 
statement 
<?php if ($a == 5): ?> 
A is equal to 5 
<?php endif; ?> 
<?php 
if ($a == 5): 
echo "a equals 5"; 
echo "..."; 
else: 
echo "a is not 5"; 
endif; 
?> 07 
sample code from http://us3.php.net/manual/en/control-structures.alternative-syntax.php
Thank You !!!

More Related Content

PPT
PPT
PPT
MIND sweeping introduction to PHP
PPT
rtwerewr
PPT
PPT
PHP - Introduction to PHP Functions
PPTX
Bioinformatics p1-perl-introduction v2013
PDF
Php Tutorials for Beginners
MIND sweeping introduction to PHP
rtwerewr
PHP - Introduction to PHP Functions
Bioinformatics p1-perl-introduction v2013
Php Tutorials for Beginners

What's hot (19)

PDF
Introduction to php
PDF
Introduction to Perl and BioPerl
PDF
Php Crash Course - Macq Electronique 2010
PPT
PHP - Introduction to PHP
ODP
Perl Introduction
PPT
Perl Basics with Examples
PDF
PHP 8.1 - What's new and changed
PPT
Perl tutorial
PPTX
Spl to the Rescue - Zendcon 09
PDF
IO Streams, Files and Directories
PDF
SPL to the Rescue - Tek 09
PDF
Writing and using php streams and sockets tek11
ODP
perl usage at database applications
PPTX
PPTX
Php on the desktop and php gtk2
ODP
PHP Web Programming
Introduction to php
Introduction to Perl and BioPerl
Php Crash Course - Macq Electronique 2010
PHP - Introduction to PHP
Perl Introduction
Perl Basics with Examples
PHP 8.1 - What's new and changed
Perl tutorial
Spl to the Rescue - Zendcon 09
IO Streams, Files and Directories
SPL to the Rescue - Tek 09
Writing and using php streams and sockets tek11
perl usage at database applications
Php on the desktop and php gtk2
PHP Web Programming
Ad

Viewers also liked (20)

PDF
Ima 2010
PDF
4º CURSO 2ct
PPTX
Trabajo_final_RT_BARREIROS_MARIA
PDF
Presentacion materias · 2 ct · cav
PPT
Менеджмент в юридичному бізнесі: лідерство, команда, ефективність
PDF
Sergas
PDF
La recherche
PDF
Como confirgurar mi perfil de Linkedin
PDF
Creación dun blog
PPT
Informepedmensalissn1983 7593-pedano20n-09set-2011-111027073642-phpapp02
PPTX
O XORNAL DE TRUCO
PDF
Ix bienal op
PDF
SOFOR 1
PDF
Informe grupo mellora responsabilidade social empresarial
PDF
Curso monitor tempo libre intensivo agosto
PPTX
Presentacion Sharol
PDF
Forrester and BESegal on Social Media Metrics That Matter
PDF
Brochure - Funding / Merchant Services
TXT
Limesurvey survey Reports
PDF
Festival alternativo de treato
Ima 2010
4º CURSO 2ct
Trabajo_final_RT_BARREIROS_MARIA
Presentacion materias · 2 ct · cav
Менеджмент в юридичному бізнесі: лідерство, команда, ефективність
Sergas
La recherche
Como confirgurar mi perfil de Linkedin
Creación dun blog
Informepedmensalissn1983 7593-pedano20n-09set-2011-111027073642-phpapp02
O XORNAL DE TRUCO
Ix bienal op
SOFOR 1
Informe grupo mellora responsabilidade social empresarial
Curso monitor tempo libre intensivo agosto
Presentacion Sharol
Forrester and BESegal on Social Media Metrics That Matter
Brochure - Funding / Merchant Services
Limesurvey survey Reports
Festival alternativo de treato
Ad

Similar to Php classes in mumbai (20)

PPT
Php introduction with history of php
PPT
php fundamental
PPT
PPT
Training on php by cyber security infotech (csi)
PPT
Synapseindia reviews sharing intro on php
PPT
Synapseindia reviews sharing intro on php
PPT
Synapseindia reviews on array php
PPT
Php Lecture Notes
PDF
Php Introduction nikul
PPT
PHP - Introduction to PHP Fundamentals
PPT
introduction to php web programming 2024.ppt
PPT
php41.ppt
PPT
PHP InterLevel.ppt
PPT
php-I-slides.ppt
PPT
Php i-slides
PPT
Php i-slides
PPT
Php i-slides (2) (1)
PPT
Php i-slides
PPTX
Unit 5-PHP Declaring variables, data types, array, string, operators, Expres...
PPT
Php mysql
Php introduction with history of php
php fundamental
Training on php by cyber security infotech (csi)
Synapseindia reviews sharing intro on php
Synapseindia reviews sharing intro on php
Synapseindia reviews on array php
Php Lecture Notes
Php Introduction nikul
PHP - Introduction to PHP Fundamentals
introduction to php web programming 2024.ppt
php41.ppt
PHP InterLevel.ppt
php-I-slides.ppt
Php i-slides
Php i-slides
Php i-slides (2) (1)
Php i-slides
Unit 5-PHP Declaring variables, data types, array, string, operators, Expres...
Php mysql

More from Vibrant Technologies & Computers (20)

PPT
Buisness analyst business analysis overview ppt 5
PPT
SQL Introduction to displaying data from multiple tables
PPT
SQL- Introduction to MySQL
PPT
SQL- Introduction to SQL database
PPT
ITIL - introduction to ITIL
PPT
Salesforce - Introduction to Security & Access
PPT
Data ware housing- Introduction to olap .
PPT
Data ware housing - Introduction to data ware housing process.
PPT
Data ware housing- Introduction to data ware housing
PPT
Salesforce - classification of cloud computing
PPT
Salesforce - cloud computing fundamental
PPT
SQL- Introduction to PL/SQL
PPT
SQL- Introduction to advanced sql concepts
PPT
SQL Inteoduction to SQL manipulating of data
PPT
SQL- Introduction to SQL Set Operations
PPT
Sas - Introduction to designing the data mart
PPT
Sas - Introduction to working under change management
PPT
SAS - overview of SAS
PPT
Teradata - Architecture of Teradata
PPT
Teradata - Restoring Data
Buisness analyst business analysis overview ppt 5
SQL Introduction to displaying data from multiple tables
SQL- Introduction to MySQL
SQL- Introduction to SQL database
ITIL - introduction to ITIL
Salesforce - Introduction to Security & Access
Data ware housing- Introduction to olap .
Data ware housing - Introduction to data ware housing process.
Data ware housing- Introduction to data ware housing
Salesforce - classification of cloud computing
Salesforce - cloud computing fundamental
SQL- Introduction to PL/SQL
SQL- Introduction to advanced sql concepts
SQL Inteoduction to SQL manipulating of data
SQL- Introduction to SQL Set Operations
Sas - Introduction to designing the data mart
Sas - Introduction to working under change management
SAS - overview of SAS
Teradata - Architecture of Teradata
Teradata - Restoring Data

Recently uploaded (20)

PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Weekly quiz Compilation Jan -July 25.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
Trump Administration's workforce development strategy
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Cell Types and Its function , kingdom of life
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Anesthesia in Laparoscopic Surgery in India
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
Complications of Minimal Access Surgery at WLH
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Weekly quiz Compilation Jan -July 25.pdf
O7-L3 Supply Chain Operations - ICLT Program
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Trump Administration's workforce development strategy
Microbial diseases, their pathogenesis and prophylaxis
202450812 BayCHI UCSC-SV 20250812 v17.pptx
Supply Chain Operations Speaking Notes -ICLT Program
Cell Types and Its function , kingdom of life
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
O5-L3 Freight Transport Ops (International) V1.pdf

Php classes in mumbai

  • 2. Introduction to php By K1/ 4, Second floor, Sector-15/16 Market, Vashi, Navi Mumbai www.vibranttechnologies.co.in Mob No: 9892900103 9892900173
  • 3. What we'll cover • A short history of php • Parsing • Variables • Arrays • Operators • Functions • Control Structures • External Data Files
  • 4. Background • PHP is server side scripting system • PHP stands for "PHP: Hypertext Preprocessor" • Syntax based on Perl, Java, and C • Very good for creating dynamic content • Powerful, but somewhat risky! • If you want to focus on one system for dynamic content, this is a good one to choose
  • 5. History • Started as a Perl hack in 1994 by Rasmus Lerdorf (to handle his resume), developed to PHP/FI 2.0 • By 1997 up to PHP 3.0 with a new parser engine by Zeev Suraski and Andi Gutmans • Version 5.2.4 is current version, rewritten by Zend (www.zend.com) to include a number of features, such as an object model • Current is version 5 • php is one of the premier examples of what an open source project can be
  • 6. About Zend • A Commercial Enterprise • Zend provides Zend engine for PHP for free • They provide other products and services for a fee • Server side caching and other optimizations • Encoding in Zend's intermediate format to protect source code • IDE-a developer's package with tools to make life easier • Support and training services • Zend's web site is a great resource
  • 7. PHP 5 Architecture • Zend engine as parser (Andi Gutmans and Zeev Suraski) • SAPI is a web server abstraction layer • PHP components now self contained (ODBC, Java, LDAP, etc.) • This structure is a good general design for software (compare to OSI model, and middleware applications) image from http://www.zend.com/zend/art/intro.php
  • 8. PHP Scripts • Typically file ends in .php--this is set by the web server configuration • Separated in files with the <?php ?> tag • php commands can make up an entire file, or can be contained in html--this is a choice…. • Program lines end in ";" or you get an error • Server recognizes embedded script and executes • Result is passed to browser, source isn't visible <P> <?php $myvar = "Hello World!"; echo $myvar; ?> </P>
  • 9. Parsing • We've talk about how the browser can read a text file and process it, that's a basic parsing method • Parsing involves acting on relevant portions of a file and ignoring others • Browsers parse web pages as they load • Web servers with server side technologies like php parse web pages as they are being passed out to the browser • Parsing does represent work, so there is a cost
  • 10. Two Ways • You can embed sections of php inside html: <BODY> <P> <?php $myvar = "Hello World!"; echo $myvar; </BODY> • Or you can call html from php: <?php echo "<html><head><title>Howdy</title> … ?>
  • 11. What do we know already? • Much of what we learned about javascript holds true in php (but not all!), and other languages as well $name = "bil"; echo "Howdy, my name is $name"; echo "What will $name be in this line?"; echo 'What will $name be in this line?'; echo 'What's wrong with this line?'; if ($name == "bil") { // Hey, what's this? echo "got a match!"; }
  • 12. Variables • Typed by context (but one can force type), so it's loose • Begin with "$" (unlike javascript!) • Assigned by value • $foo = "Bob"; $bar = $foo; • Assigned by reference, this links vars • $bar = &$foo; • Some are preassigned, server and env vars • For example, there are PHP vars, eg. PHP_SELF, HTTP_GET_VARS 00
  • 13. phpinfo() • The phpinfo() function shows the php environment • Use this to read system and server variables, setting stored in php.ini, versions, and modules • Notice that many of these data are in arrays • This is the first script you should write… 00_phpinfo.php
  • 14. Variable Variables • Using the value of a variable as the name of a second variable) $a = "hello"; $$a = "world"; • Thus: echo "$a ${$a}"; • Is the same as: echo "$a $hello"; • But $$a echoes as "$hello"…. 00_hello_world.php
  • 15. Operators • Arithmetic (+, -, *, /, %) and String (.) • Assignment (=) and combined assignment $a = 3; $a += 5; // sets $a to 8; $b = "Hello "; $b .= "There!"; // sets $b to "Hello There!"; • Bitwise (&, |, ^, ~, <<, >>) • $a ^ $b(Xor: Bits that are set in $a or $b but not both are set.) • ~ $a (Not: Bits that are set in $a are not set, and vice versa.) • Comparison (==, ===, !=, !==, <, >, <=, >=)
  • 16. Coercion • Just like javascript, php is loosely typed • Coercion occurs the same way • If you concatenate a number and string, the number becomesa string 17_coercion.php
  • 17. Operators: The Movie • Error Control (@) • When this precedes a command, errors generated are ignored (allows custom messages) • Execution (` is similar to the shell_exec() function) • You can pass a string to the shell for execution: $$oouuttppuutt == ``llss --aall``;; $$oouuttppuutt == sshheellll__eexxeecc((""llss --aall""));; • This is one reason to be careful about user set variables! • Incrementing/Decrementing ++$a (Increments by one, then returns $a.) $a++ (Returns $a, then increments $a by one.) --$a (Decrements $a by one, then returns $a.) $a-- (Returns $a, then decrements $a by one.)
  • 18. Son of the Valley of Operators • Logical $a and $b And True if both $a and $b are true. $a or $b Or True if either $a or $b is true. $a xor $b Xor True if either $a or $b is true, but not both. ! $a Not True if $a is not true. $a && $b And True if both $a and $b are true. $a || $b Or True if either $a or $b is true. • The two ands and ors have different precedence rules, "and" and "or" are lower precedence than "&&" and "||" • Use parentheses to resolve precedence problems or just to be clearer
  • 19. Control Structures • Wide Variety available • if, else, elseif • while, do-while • for, foreach • break, continue, switch • require, include, require_once, include_once
  • 20. Control Structures • Mostly parallel to what we've covered already in javascript • if, elseif, else, while, for, foreach, break and continue
  • 21. Switch • Switch, which we've seen, is very useful • These two do the same things…. if ($i == 0) { echo "i equals 0"; } elseif ($i == 1) { echo "i equals 1"; } elseif ($i == 2) { echo "i equals 2"; } switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; } example from http://us3.php.net/manual/en/control-structures.switch.php
  • 22. Nesting Files • require(), include(), include_once(), require_once() are used to bring in an external file • This lets you use the same chunk of code in a number of pages, or read other kinds of files into your program • Be VERY careful of using these anywhere close to user input--if a hacker can specify the file to be included, that file will execute within your script, with whatever rights your script has (readfile is a good alternative if you just want the file, but don't need to execute it) • Yes, Virginia, remote files can be specified
  • 23. Example: A Dynamic Table • I hate writing html tables • You can build one in php • This example uses pictures and builds a table with pictures in one column, and captions in another • The captions are drawn from text files • I'm using tables, but you could use css for placement easily…
  • 24. Arrays • You can create an array with the array function, or use the explode function (this is very useful when reading files into web programs…) $my_array = array(1, 2, 3, 4, 5); $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); • An array is simply a variable representing a keyed list • A list of values or variables • If a variable, that var can also be an array • Each variable in the list has a key • The key can be a number or a text label
  • 25. Arrays • Arrays are lists, or lists of lists, or list of lists of lists, you get the idea--Arrays can be multi-dimensional • Array elements can be addressed by either by number or by name (strings) • If you want to see the structure of an array, use the print_r function to recursively print an array inside of pre tags
  • 26. Text versus Keys • Text keys work like number keys (well, really, it's the other way around--number keys are just labels) • You assign and call them the same way, except you have to assign the label to the value or variables, eg: echo "$my_text_array[third]"; $my_text_array = array(first=>1, second=>2, third=>3); echo "<pre>"; print_r($my_text_array); echo "</pre>";
  • 27. Walking Arrays • Use a loop, eg a foreach loop to walk through an array • while loops also work for arrays with numeric keys--just set a variable for the loop, and make sure to increment that variable within the loop $colors = array('red', 'blue', 'green', 'yellow'); foreach ($colors as $color) { echo "Do you like $color?n"; } 05_arrays.php
  • 28. 05_arrays.php • You can't echo an array directly… • You can walk through an echo or print() line by line • You can use print_r(), this will show you the structure of complex arrays--that output is to the right, and it's handy for learning the structure of an array Array ( [1] => Array ( [sku] => A13412 [quantity] => 10 [item] => Whirly Widgets [price] => .50 ) [2] => Array ( [sku] => A43214 [quantity] => 142 [item] => Widget Nuts [price] => .05 )
  • 29. Multidimensional Arrays • A one dimensional array is a list, a spreadsheet or other columnar data is two dimensional… • Basically, you can make an array of arrays $multiD = array ( "fruits" => array("myfavorite" => "orange", "yuck" => "banana", "yum" => "apple"), "numbers" => array(1, 2, 3, 4, 5, 6), "holes" => array("first", 5 => "second", "third") ); • The structure can be built array by array, or declared with a single statement • You can reference individual elements by nesting: echo "<p>Yes, we have no " . $multiD["fruits"]["yuck"] . " (ok by me).</p>"; • print_r() will show the entire structure, but don’t fo0r1gae_tatrhrea ypsr.ep htapgs
  • 30. Getting Data into arrays • You can directly read data into individual array slots via a direct assignment: $pieces[5] = "poulet resistance"; • From a file: • Use the file command to read a delimited file (the delimiter can be any unique char): $pizza = file(./our_pizzas.txt) • Use explode to create an array from a line within a loop: $pieces = explode(" ", $pizza);
  • 31. The Surface • The power of php lies partially in the wealth of functions---for example, the 40+ array functions • array_flip() swaps keys for values • array_count_values() returns an associative array of all values in an array, and their frequency • array_rand() pulls a random element • array_unique() removes duppies • array_walk() applies a user defined function to each element of an array (so you can dice all of a dataset) • count() returns the number of elements in an array • array_search() returns the key for the first match in an array 08_array_fu.php
  • 32. Using External Data • You can build dynamic pages with just the information in a php script • But where php shines is in building pages out of external data sources, so that the web pages change when the data does • Most of the time, people think of a database like MySQL as the backend, but you can also use text or other files, LDAP, pretty much anything….
  • 33. Standard data files • Normally you'd use a tab delimited file, but you can use pretty much anything as a delimiter • Files get read as arrays, one line per slot • Remember each line ends in n, you should clean this up, and be careful about white space • Once the file is read, you can use explode to break the lines into fields, one at a time, in a loop….
  • 34. Standard data files • You can use trim() to clean white space and returns instead of str_replace() • Notice that this is building an array of arrays $iitteemmss==ffiillee((""..//mmyyddaattaa..ttxxtt""));; ffoorreeaacchh (($$iitteemmss aass $$lliinnee)) {{ $$lliinnee == ssttrr__rreeppllaaccee((""nn"",, """",, $$lliinnee));; $$lliinnee == eexxppllooddee((""tt"",, $$lliinnee));; //// ddoo ssoommeetthhiinngg wwiitthh $$lliinnee aarrrraayy }}
  • 35. Useful string functions • str_replace() • trim(), ltrim(), rtrim() • implode(), explode() • addslashes(), stripslashes() • htmlentities(), html_entity_decode(), htmlspecialchars() • striptags()
  • 36. 06_more_arrays.php • This is a simple script to read and process a text file • The data file is tab delimited and has the column titles as the first line of the file
  • 37. How it works • The script uses the first line to build text labels for the subsequent lines, so that the array elements can be called by the text label • If you add a new column, this script compensates • Text based arrays are not position dependent… • This script could be the basis of a nice function • There are two version of this, calling two different datafiles, but that's the only difference
  • 38. 06a_more_arrays.php • This version shows how to dynamically build a table in the html output
  • 39. Alternative syntax • Applies to if, while, for, foreach, and switch • Change the opening brace to a colon • Change the closing brace to an endxxx statement <?php if ($a == 5): ?> A is equal to 5 <?php endif; ?> <?php if ($a == 5): echo "a equals 5"; echo "..."; else: echo "a is not 5"; endif; ?> 07 sample code from http://us3.php.net/manual/en/control-structures.alternative-syntax.php