0% found this document useful (0 votes)
57 views40 pages

05 PHP

PHP is a server-side scripting language commonly used for web development. It was created in 1994 and has evolved through several versions. PHP code is embedded within HTML and executed by the server before the page is sent to the browser. The document discusses PHP's history, architecture, variables, arrays, operators, control structures, and parsing process. It provides an overview of the key concepts in PHP.

Uploaded by

nebiyu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views40 pages

05 PHP

PHP is a server-side scripting language commonly used for web development. It was created in 1994 and has evolved through several versions. PHP code is embedded within HTML and executed by the server before the page is sent to the browser. The document discusses PHP's history, architecture, variables, arrays, operators, control structures, and parsing process. It provides an overview of the key concepts in PHP.

Uploaded by

nebiyu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 40

Introduction to php

PHP

MostofthisisfromthePHPmanual
onlineat:
http://www.php.net/manual/
What we'll cover
Ashorthistoryofphp
Parsing
Variables
Arrays
Operators
Functions
ControlStructures
ExternalDataFiles
Background

PHPisserversidescriptingsystem
PHPstandsfor"PHP:HypertextPreprocessor"
SyntaxbasedonPerl,Java,andC
Verygoodforcreatingdynamiccontent
Powerful,butsomewhatrisky!
Ifyouwanttofocusononesystemfordynamic
content,thisisagoodonetochoose
History
StartedasaPerlhackin1994byRasmusLerdorf
(tohandlehisresume),developedtoPHP/FI2.0
By1997uptoPHP3.0withanewparserengine
byZeevSuraskiandAndiGutmans
Version5.2.4iscurrentversion,rewrittenbyZend
(www.zend.com)toincludeanumberoffeatures,
suchasanobjectmodel
Currentisversion5
phpisoneofthepremierexamplesofwhatan
opensourceprojectcanbe
About Zend
ACommercialEnterprise
ZendprovidesZendengineforPHPforfree
Theyprovideotherproductsandservicesforafee
Serversidecachingandotheroptimizations
EncodinginZend'sintermediateformattoprotect
sourcecode
IDEadeveloper'spackagewithtoolstomakelifeeasier
Supportandtrainingservices
Zend'swebsiteisagreatresource
PHP 5 Architecture
Zendengineasparser(AndiGutmansandZeevSuraski)
SAPIisawebserverabstractionlayer
PHPcomponentsnowselfcontained(ODBC,Java,LDAP,
etc.)
Thisstructureisagoodgeneraldesignforsoftware
(comparetoOSImodel,andmiddlewareapplications)

imagefromhttp://www.zend.com/zend/art/intro.php
PHP Scripts
Typicallyfileendsin.phpthisissetbytheweb
serverconfiguration
Separatedinfileswiththe<?php?>tag
phpcommandscanmakeupanentirefile,orcanbe
containedinhtmlthisisachoice.
Programlinesendin";"oryougetanerror
Serverrecognizesembeddedscriptandexecutes
Resultispassedtobrowser,sourceisn'tvisible
<P>
<?php$myvar="HelloWorld!";
echo$myvar;
?>
</P>
Parsing
We'vetalkabouthowthebrowsercanreadatext
fileandprocessit,that'sabasicparsingmethod
Parsinginvolvesactingonrelevantportionsofa
fileandignoringothers
Browsersparsewebpagesastheyload
Webserverswithserversidetechnologieslikephp
parsewebpagesastheyarebeingpassedoutto
thebrowser
Parsingdoesrepresentwork,sothereisacost
Two Ways

Youcanembedsectionsofphpinsidehtml:
<BODY>
<P>
<?php$myvar="HelloWorld!";
echo$myvar;
</BODY>
Oryoucancallhtmlfromphp:
<?php
echo"<html><head><title>Howdy</title>

?>
What do we know already?

Muchofwhatwelearnedaboutjavascript
holdstrueinphp(butnotall!),andother
languagesaswell
$name="bil";
echo"Howdy,mynameis$name";
echo"Whatwill$namebeinthisline?";
echo'Whatwill$namebeinthisline?';
echo'What'swrongwiththisline?';
if($name=="bil")
{
//Hey,what'sthis?
echo"gotamatch!";
}
Variables
Typedbycontext(butonecanforcetype),soit's
loose
Beginwith"$"(unlikejavascript!)
Assignedbyvalue
$foo="Bob";$bar=$foo;
Assignedbyreference,thislinksvars
$bar=&$foo;
Somearepreassigned,serverandenvvars
Forexample,therearePHPvars,eg.PHP_SELF,
HTTP_GET_VARS 00
phpinfo()

Thephpinfo()functionshowsthephp
environment
Usethistoreadsystemandservervariables,
settingstoredinphp.ini,versions,and
modules
Noticethatmanyofthesedataareinarrays
Thisisthefirstscriptyoushouldwrite

00_phpinfo.php
Variable Variables

Usingthevalueofavariableasthenameof
asecondvariable)
$a="hello";
$$a="world";
Thus:
echo"$a${$a}";
Isthesameas:
echo"$a$hello";
But$$aechoesas"$hello".

00_hello_world.php
Operators
Arithmetic(+,,*,/,%)andString(.)
Assignment(=)andcombinedassignment
$a=3;
$a+=5;//sets$ato8;
$b="Hello";
$b.="There!";//sets$bto"HelloThere!";
Bitwise(&,|,^,~,<<,>>)
$a^$b(Xor:Bitsthataresetin$aor$bbutnot
bothareset.)
~$a(Not:Bitsthataresetin$aarenotset,
andviceversa.)
Comparison(==,===,!=,!==,<,>,<=,>=)
Coercion

Justlikejavascript,phpislooselytyped
Coercionoccursthesameway
Ifyouconcatenateanumberandstring,the
numberbecomesastring

17_coercion.php
Operators: The Movie

ErrorControl(@)
Whenthisprecedesacommand,errorsgeneratedareignored
(allowscustommessages)
Execution(`issimilartotheshell_exec()
function)
Youcanpassastringtotheshellforexecution:
$output = `ls -al`;
$output = shell_exec("ls -al");
Thisisonereasontobecarefulaboutusersetvariables!
Incrementing/Decrementing
++$a(Incrementsbyone,thenreturns$a.)
$a++(Returns$a,thenincrements$abyone.)
$a (Decrements$abyone,thenreturns$a.)
$a (Returns$a,thendecrements$abyone.)
Son of the Valley of Operators

Logical
$aand$b And Trueifboth$aand$baretrue.
$aor$b Or Trueifeither$aor$bistrue.
$axor$b Xor Trueifeither$aor$bistrue,
butnotboth.
!$a Not Trueif$aisnottrue.
$a&&$b And Trueifboth$aand$baretrue.
$a||$b Or Trueifeither$aor$bistrue.

Thetwoandsandorshavedifferent
precedencerules,"and"and"or"arelower
precedencethan"&&"and"||"
Useparenthesestoresolveprecedence
problemsorjusttobeclearer
Control Structures
WideVarietyavailable
if,else,elseif
while,dowhile
for,foreach
break,continue,switch
require,include,require_once,include_once
Control Structures
Mostlyparalleltowhatwe'vecovered
alreadyinjavascript
if,elseif,else,while,for,foreach,breakand
continue
Switch

Switch,whichwe'veseen,isveryuseful
Thesetwodothesame
switch($i){
things. case0:
echo"iequals0";
break;
if($i==0){ case1:
echo"iequals0"; echo"iequals1";
}elseif($i==1){ break;
echo"iequals1"; case2:
}elseif($i==2){ echo"iequals2";
echo"iequals2"; break;
} }

examplefromhttp://us3.php.net/manual/en/controlstructures.switch.php
Nesting Files
require(),include(),include_once(),require_once()are
usedtobringinanexternalfile
Thisletsyouusethesamechunkofcodeinanumber
ofpages,orreadotherkindsoffilesintoyourprogram
BeVERYcarefulofusingtheseanywhereclosetouser
inputifahackercanspecifythefiletobeincluded,
thatfilewillexecutewithinyourscript,withwhatever
rightsyourscripthas(readfileisagoodalternativeif
youjustwantthefile,butdon'tneedtoexecuteit)
Yes,Virginia,remotefilescanbespecified
Example: A Dynamic Table

Ihatewritinghtmltables
Youcanbuildoneinphp
Thisexampleusespicturesandbuildsa
tablewithpicturesinonecolumn,and
captionsinanother
Thecaptionsaredrawnfromtextfiles
I'musingtables,butyoucouldusecssfor
placementeasily
Arrays
Youcancreateanarraywiththearrayfunction,orusetheexplodefunction(thisisveryusefulwhenreading
filesintowebprograms)
$my_array=array(1,2,3,4,5);

$pizza="piece1piece2piece3piece4piece5piece6";
$pieces=explode("",$pizza);

Anarrayissimplyavariablerepresentingakeyedlist
Alistofvaluesorvariables
Ifavariable,thatvarcanalsobeanarray
Eachvariableinthelisthasakey
Thekeycanbeanumberoratextlabel
Arrays

Arraysarelists,orlistsoflists,orlistoflistsof
lists,yougettheideaArrayscanbemulti
dimensional
Arrayelementscanbeaddressedbyeitherby
numberorbyname(strings)
Ifyouwanttoseethestructureofanarray,usethe
print_rfunctiontorecursivelyprintanarrayinside
ofpretags
Text versus Keys

Textkeysworklikenumberkeys(well,
really,it'stheotherwayaroundnumber
keysarejustlabels)
Youassignandcallthemthesameway,
exceptyouhavetoassignthelabeltothe
valueorvariables,eg:
echo"$my_text_array[third]";
$my_text_array = array(first=>1, second=>2, third=
echo "<pre>";
print_r($my_text_array);
echo "</pre>";
Walking Arrays

Usealoop,egaforeachlooptowalkthrough
anarray
whileloopsalsoworkforarrayswith
numerickeysjustsetavariablefortheloop,
andmakesuretoincrementthatvariable
withintheloop
$colors=array('red','blue','green','yellow');

foreach($colorsas$color){
echo"Doyoulike$color?\n";
}
05_arrays.php
05_arrays.php
Array
Youcan'techoan (
arraydirectly [1] => Array
(
Youcanwalkthrough [sku] => A13412
[quantity] => 10
anechoorprint()line [item] => Whirly
byline [price] => .50
)
Youcanuseprint_r(),
thiswillshowyouthe [2] => Array
(
structureofcomplex [sku] => A43214
arraysthatoutputis [quantity] => 14
[item] => Widget
totheright,andit's [price] => .05
handyforlearningthe )
structureofanarray
Multidimensional Arrays
Aonedimensionalarrayisalist,aspreadsheetorothercolumnardata
istwodimensional
Basically,youcanmakeanarrayofarrays
$multiD = array
(
"fruits" => array("myfavorite" => "orange", "yuck" =>
"banana", "yum" => "apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
Thestructurecanbebuiltarraybyarray,ordeclaredwithasingle
statement
Youcanreferenceindividualelementsbynesting:
echo "<p>Yes, we have no " . $multiD["fruits"]["yuck"] . "
(ok by me).</p>";
print_r()willshowtheentirestructure,butdontforgetthepretags
01a_arrays.php
Getting Data into arrays

Youcandirectlyreaddataintoindividual
arrayslotsviaadirectassignment:
$pieces[5]="pouletresistance";
Fromafile:
Usethefilecommandtoreadadelimitedfile
(thedelimitercanbeanyuniquechar):
$pizza=file(./our_pizzas.txt)
Useexplodetocreateanarrayfromaline
withinaloop:
$pieces=explode("",$pizza);
The Surface
Thepowerofphpliespartiallyinthewealthof
functionsforexample,the40+arrayfunctions
array_flip()swapskeysforvalues
array_count_values()returnsanassociativearrayofall
valuesinanarray,andtheirfrequency
array_rand()pullsarandomelement
array_unique()removesduppies
array_walk()appliesauserdefinedfunctiontoeach
elementofanarray(soyoucandiceallofadataset)
count()returnsthenumberofelementsinanarray
array_search()returnsthekeyforthefirstmatchinan
array

08_array_fu.php
Using External Data

Youcanbuilddynamicpageswithjustthe
informationinaphpscript
Butwherephpshinesisinbuildingpages
outofexternaldatasources,sothattheweb
pageschangewhenthedatadoes
Mostofthetime,peoplethinkofadatabase
likeMySQLasthebackend,butyoucan
alsousetextorotherfiles,LDAP,pretty
muchanything.
Standard data files
Normallyyou'duseatabdelimitedfile,butyoucan
useprettymuchanythingasadelimiter
Filesgetreadasarrays,onelineperslot
Remembereachlineendsin\n,youshouldclean
thisup,andbecarefulaboutwhitespace
Oncethefileisread,youcanuseexplodetobreak
thelinesintofields,oneatatime,inaloop.
Standard data files
Youcanusetrim()tocleanwhitespaceand
returnsinsteadofstr_replace()
Noticethatthisisbuildinganarrayofarrays

$items=file("./mydata.txt");
foreach ($items as $line)
{
$line = str_replace("\n", "",
$line);
$line = explode("\t", $line);
// do something with $line
Useful string functions

str_replace()
trim(),ltrim(),rtrim()
implode(),explode()
addslashes(),stripslashes()
htmlentities(),html_entity_decode(),
htmlspecialchars()
striptags()
06_more_arrays.php
Thisisasimplescripttoreadandprocessatext
file
Thedatafileistabdelimitedandhasthecolumn
titlesasthefirstlineofthefile
How it works

Thescriptusesthefirstlinetobuildtextlabelsfor
thesubsequentlines,sothatthearrayelements
canbecalledbythetextlabel
Ifyouaddanewcolumn,thisscript
compensates
Textbasedarraysarenotpositiondependent
Thisscriptcouldbethebasisofanicefunction
Therearetwoversionofthis,callingtwodifferent
datafiles,butthat'stheonlydifference
06a_more_arrays.php
Thisversionshowshowtodynamicallybuildatableinthe
htmloutput
Alternative syntax

Appliestoif,while,for,foreach,andswitch
Changetheopeningbracetoacolon
Changetheclosingbracetoanendxxx
statement <?php
if($a==5):
echo"aequals5";
<?phpif($a==5):?> echo"...";
Aisequalto5 else:
<?phpendif;?> echo"aisnot5";
endif;
?> 07
samplecodefromhttp://us3.php.net/manual/en/controlstructures.alternativesyntax.php
Sources

http://www.zend.com/zend/art/intro.php
http://www.php.net/
http://hotwired.lycos.com/webmonkey/prog
ramming/php/index.html

You might also like