2. Index:-
• Overview of Open Source Software.
• Widely Used Open Source Software.
• Difference between Open Source Software and Close Source
Software.
• Pros and Cons of OSS.
• Background Information of PHP.
• Using variables
• operators & expressions
• Conditional Statements :
• if statement
• switch statement
• Looping Statements:
• for loop
• while loop
• do..while loop
• foreach loop
• Functions & Arrays in PHP
• PHP functions
• Creating arrays
• Regular Expressions
3. • PHP and Database
• Storage Types
• PHP with MySQL.
• Deal with Database.
• Manipulation with tables using PHP.
• Include(),include_once().
• Require(),require_once().
• Working with User Data and Error Handling.
• Cookie
• Session
• Error Handling
• Types of error
• Object Oriented Programming with PHP.
• Class, Constructor, Destructure
• Inheritance
• Magic Methods.
• Overview of PHP Framework.
• Popular PHP Framework.
• WordPpress, Magento, Opencart, Drupal, Zoomla etc.
4. Overview of Open Source.
Open-source software (OSS) is computer software
that is available in source code form: the source code
and certain other rights normally reserved for copyright
holders are provided under a software license that
permits users to study, change, improve and at times
also to distribute the software.
Open Source is a certification standard issued by the
Open Source Initiative (OSI) that indicates that the
source code of a computer program is made available
free of charge to the general public.
For an Open Source Software to be an "OSI Certified" a product must
meet the following criteria:
◦ The author or holder of the license of the source code cannot collect
royalties on the distribution of the program.
◦ The distributed program must make the source code accessible to the
user.
◦ The author must allow modifications and derivations of the work under
the program's original name.
5. Widely used open source products
Linux Kernel (Operating System)
Apache (Web Server)
GNOME, KDE (Desktop Environment)
MySQL (Database emphasizing speed)
Postgre SQL ( Database emphasizing
functionality)
PHP(Server-side scripting)
Open Office.org ( multi platform and multi
lingual office suite )
Filezilla (fast & reliable FTP client)
Pant.net(Free image editing software)
6. Open Source Software vs Close
Source Software
Term Open Source Closed Source
Cost •Open source software may
be free. If you have in-
house capability for
implementation, training
then it is the best option.
Otherwise you need to pay
for it.
•Open source software
requires a certain level of
technical expertise in order
to manage content.
•Open source software
providers are increasingly
charging for add-ons,
additional services and
integration.
•The cost of proprietary
software will vary from a few
thousand to a few
hundred thousand dollars,
depending on the complexity of
the system
required.
•This cost is made up of a base
fee for software, integration
and
services and annual
licensing/support fees.
7. Term Open Source Closed Source
Innovation Open source software
enables innovation by
providing users with the
freedom and flexibility to
adapt the software to suit,
without restriction.
Proprietary software providers
do not allow users to view or
alter the source
code. While this may be
viewed as a disadvantage to
some, it ensures the
security and reliability of the
software.
Usability It is developer-centric.
Requires system
administration expertise.
No availability of the proper
documentation of the system
is available.
Proprietary software generally
employs expert usability
testing, and as the
software is normally aimed at a
more targeted audience
8. Term Open Source Closed Source
Services &
Support
•Service is one of the key
issues regarding open source
software. Open source
software relies on its online
community network to deliver
support via forums
and blogs.
•These communities cannot
guarantee the high level of
responsive service and support
proprietary software can offer.
•Proprietary software providers
offer ongoing support to users,
a key selling point for users
without technical expertise.
•Service is one of the main
reasons users choose
proprietary software, many
proprietary software providers
compete on service ,
increasing the bargaining
power of buyers and thereby
increasing customer service
levels among providers.
9. •Term •Open Source •Closed Source
Security •Open source software is
not developed in a
controlled environment.
•While development they
often have a
oconcentrated dev. team,
oindividuals all over the
world
who may not work on the
software for the duration of
its developing lifetime.
This lack of continuity and
common direction can lead
to barriers to effective
communication surrounding
the software.
•Proprietary software is
viewed as more secure
because it is developed in a
controlled environment by a
concentrated team with a
common direction.
10. Pros and Cons of OSS
Pros of OSS:-
◦ Helped to produce reliable, high quality
software quickly and inexpensively.
◦ thousands of independent programmers
testing and fixing bugs of the software.
◦ From a developer’s point of view, open
source technologies provide a platform on
which to build custom solutions.
11. • Cons of OSS
◦ In terms of security, open source may allow
hackers to know about the weaknesses or
loopholes of the software more easily than
closed-source software.
◦ open source development process may not be
well defined and the stages in the development
process, such as system testing and
documentation may be ignored.
◦ It is also difficult to design a commercially sound
business model around the open source
paradigm.
◦ Anyone can develop competing product because
its Open Source.
◦ Almost everything in open source is viewable by
other developers. If a developer makes a major
mistake, it can become public information and
12. Background Information of
PHPPHP stands for “Hypertext Preprocessor”.
It is widely used Open source, general purpose scripting language
for web development & can be embedded into HTML.
Hypertext preprocessor is an interpreter of PHP code created to
run successfully on web servers.The interpreter processes PHP
code spec invoked by web server & finally dispatches HTML code
to a browser.
PHP is a server-side scripting language which means that PHP
scripts or programs usually run on the web server.
PHP Script is processed by PHP Engine each time when it runs.
PHP Syntax is based on C. So it is easy for C Programmer to
learn & work in PHP.
PHP was created by Rasmus Lerdorf in 1994, a developer of
PERL/CGI Script.
Version 1 : (1994)
◦ PHP started out with the set of simple tools coded in C
language to replace Perl script and it was used on his
Personal Home Page (so acronym - PHP).
13. Version 2 : (1995)
◦ First popular version of PHP.
Version 3 : (1998)
◦ Developers were able to write their own modules for
language, adding functionality to its core.
Version 4 : (2000)
◦ Important change made to PHP 4 was switching to Zend
Engine, created by Zend company found by Zeev Suraski
and Andi Gutmans.
◦ PHP started running on:
Apache Web Server
Microsoft’s IIS
Zeus
AOLServer & many more Web Servers.
Version 5 (2004)
◦ It focused on language maturity & offered a lots of new
functionalities that had been missing in previous
versions.
Cont…
14. Cont…
PHP 6 :- Currently available as a developer snapshot which can be
downloaded and tried out.
It is planning to offer the following :-
Improved Unicode Support
Namespaces, SOAP, XML.
Benefits of running PHP As a Server Side
Script
◦ PHP Script is always invisible to client browser, as Web Server sends only
output of PHP Script to client browser, not script only.
◦ PHP Scripts are browser neutral.
Drawbacks in running PHP as a Server – Side
Script
◦ PHP consumes lots of web server resources
because everything is executed on Web Server.
◦ With many concurrent requests & large complex
scripts, the server might not be able to respond
smoothly.
◦ PHP 5.5.7 is a latest version release on 12th
december,2013.
◦ PHP 5.6.0 alpha1 released on 23rd Jan,2014 but
it is in development preview mode.
15. What is a PHP
file?PHP File is an ASCII file created using any editor
like Notepad, Dreamviewer, etc. and stored on
HDD.
The file contains mix of HTML & PHP.
PHP files may contain text, HTML tags & scripts.
After PHP files is processed, output is returned as plain
HTML.
PHP files usually have .PHP extension.
PHP runs on different OS platforms seamlessly, being
interpreted scripting language.
PHP is compatible with almost all Web Servers.
PHP is free to download from official PHP Resource.
PHP is easy to learn & runs efficiently on any
compatible Web Server.
16. Internal Structure of PHP
Database
Webpage
w
e
b
s
e
r
v
e
r
Function Modules InterfaceWeb
Server
Interface
Runtime
Compiler
Zend Engine
Executor
Web Server Software
Modules
php
MySQL Oracle ODBC XML PDO ...
17. Variables are identifiers which point to
memory location in which data are
stored.
Variables in PHP are weakly/loosely
typed which means when a variable is
being defined their data type is not
declared prior to use.
Variables can change its type
depending on value being assigned as
often needed.
Variables
18. Variable name should begin with dollar
sign.
First character after dollar sign should be
letter or an underscore.
Remaining characters in a variable name
can be letters, characters, or underscore
without any fixed limit.
Following characters are not allowed in
variable name :- *, +, #, @, -,&,£.
Variables in PHP are case-sensitive.
Naming Rules for
variables
19. As it allows to convert variables data-type
automatically depending on the content
in the variable.
It is beneficial as it makes variable very
flexible & same variable can be used at
several different situations.
It is disadvantageous as , if you pass
around data accidentally of wrong type it
won’t inform you about it.
To know variable datatype use
gettype($var) function.e.g
PHP is loosely-typed
language
20. DataType:
- PHP has several different types of
variables.
All holds specific class/type of information.
PHP has 8 basic data types which are
categorized into 3 categories :-
1. Scalar Datatype
2. Compound Datatype
3. Special Datatype
21. Scalar Data
Type:-Scalar data means data that contains
only a single value.
Data type Description
Integer -Stores whole numbers either +ve or – ve.
-If value assigned is out of the range it is
converted to float.
Float - Store floating point numbers as well as higher
integers.
String - Stores sequence of characters terminated by
NULL.
Boolean -It holds true or false.
-Internally it holds integer value
- 0 for false
- rest values for true.
22. Compound Data
Type
Compound data is data that can
contain more than one variable.
Data type Description
Array -Ordered map
-It holds multiple values.
Object -They have multiple values within it.
-They have their own functions for accessing and/ or
manipulating its data.
23. Special Data
typePHP supports two special data types which have a specific
meaning.
Data types Description
Resource Contains a reference to an external resource, such as
file or database.
It can be used in same manner as we use another
variables but only difference is it should be freed up
when not required.
Null Contains null as a value. Explicitly do not contain any
value.
25. If statement
Simple if
if(test-expr)
{
True part
}
statement
If...else statement
if(test-expr)
{
True part
}
else
{
False part
}
Nested if statement
if(test-exp 1)
{
if(test-exp 2)
{
true 1 & 2
}
else
{
false 2
}
}
else
{
false part all
}
26. else if ladder :-
if(test-exp 1)
statement -1;
else if(test-exp 2)
statement – 2;
else if(test-exp 3)
statement – 3;
.
.
.
else
false statement
switch statement :-
switch(ch)
{
case value1:
statement 1;break;
case value2:
statement 2;break;
case value3:
statement 3; break;
.
.
.
default :
statement-false; break;
}
Case value can be of any data type or
even any condition.
We can use break and continue
interchangeable.
Default can be placed anywhere in
switch.
27. goto statement
The goto operator can be used to jump
to another section in the program. The
target point is specified by a label
followed by a colon, and the instruction is
given as goto followed by the desired
target label.
The target label must be within the same
file and context, meaning that you cannot
jump out of a function or method, nor can
you jump into one.
You also cannot jump into any sort of
loop or switch structure.
29. Loo
p
while loop
while (expr)
statement;
while (expr):
statement
...
endwhile;
do..while loop :-
do{
statements;
}while(expr);
for loop :-
for(intialization; condition;
incr/decr)
{
statement;
}
do..while loop is executed at least once whereas while and for loop
executes only when condition is satisfied.
30. Foreach Loop
The foreach construct provides an easy way to iterate
over arrays.
foreach works only on arrays and objects.
foreach will issue an error when you try to use it on a
variable with a different data type or an uninitialized
variable.
Syntax : 1 foreach (array_expression as $value)
statement // indexed array
Syntax : 2 foreach (array_expression as $key => $value)
statement // associative array
When foreach first starts executing, the internal array
pointer is automatically reset to the first element of the
array.Indexed Array :
<?php
$array = array(1,2,3,4);
foreach($array as $val) {
print $val; }
?>
Associative Array :
<?php
$arr = array(1=>’ABC’,2=>’PQR’);
foreach ($arr as $key => $val) {
print "$key = $valn";
}
?>
31. PHP Super
Globals
Super Globals are variables that are
automatically available throughout all
program code in all scopes.
These variables do not require
declaration and then too they can be
accessed.
Super global variables provide :-
◦ Useful information about the environment.
◦ Allow access to HTML form variables or
parameters.
◦ Access to cookies stored on a client.
◦ Keeping track of sessions and file uploads.
32. Name Functionality
$GLOBALS
Contains all global variables in your script, including other
super globals.
This is not generally recommended for use, unless you
are, for some reason, not sure where a variable will be
stored.
$_GET
Contains all variables sent via a HTTP GET request. That
is, sent by way of the URL.
$_POST Contains all variables sent via a HTTP POST request.
$_FILES Contains all variables sent via a HTTP POST file upload.
$_COOKIE Contains all variables sent via HTTP cookies.
$_SESSION Contains all variables stored in a user's session.
$_SERVER
Contains all variables set by the web server you are
using, or other sources that directly relate to the
execution of your script.
33. Name Functionality
$_REQUEST
Contains all variables sent via HTTP GET, HTTP POST,
and HTTP cookies. This is basically the equivalent of
combining $_GET, $_POST, and $_COOKIE, and is less
dangerous than using $GLOBALS. However, as it does
contain all variables from untrusted sources (that is, your
visitors), you should still try to steer clear unless you
have very good reason to use it.
$_ENV
Contains all environment variables set by your system or
shell for the script.
34. Array
An array in PHP is actually an ordered map. A
map is a type that associates values to keys.
Syntax to specify array with array() :-
array( key => value , ... )
key may only be an integer or string
value may be any value of any type
An array can hold all your variable values
under a single name. And you can access the
values by referring to the array name and
index of element.
Each element in the array has its own index
so that it can be easily accessed.
35. Types of
Array
There are two kind of arrays:
1. Indexed array - An array with a numeric index beginning with 0.
Indexed arrays are used when you identify things by their position.
2. Associative array - An array where each ID key is associated
with a value. Associative arrays have strings as keys and behave
more like two-column tables. The first column is the key, which is
used to access the value.
• PHP internally stores array as associative array.
Assigning elements to array using array():
$arrname = array(“val1”,”val2”,”val3”,..);
$cars=array("Saab","Volvo","BMW","Toyota");
Manual assignment to initialize array :
$cars[0]="Saab";
$cars[1]="Volvo";
$cars[2]="BMW";
$cars[3]="Toyota";
Adding elements to array at the end:
$cars[]="Saab";
$cars[]="Volvo";
$cars[]="BMW";
$cars[]="Toyota";
36. Associative
Array
If the initial index is a non-numeric
string, subsequent indexes are
integers beginning at 0.
◦ $whoops = array('Friday' => 'Black',
'Brown', 'Green');
◦ // same as $whoops = array('Friday' =>
'Black', 0 => 'Brown', 1 => 'Green');
37. Getting size of an
Array
The count( ) and sizeof( ) functions
return the number of elements in the
array.
They are identical in use and effect.
◦ $family = array('Fred', 'Wilma', 'Pebbles');
◦ $size = count($family); // $size is 3
◦ $family = array('Fred', 'Wilma', 'Pebbles');
$size = sizeof($family); // $size is 3
38. Iterator
FunctionsEvery PHP array keeps track of the current element you're
working with; the pointer to the current element is known as the
iterator. PHP has functions to set, move, and reset this iterator.
The iterator functions are:
current( )
◦ Returns the element currently pointed at by the iterator
reset( )
◦ Moves the iterator to the first element in the array and returns it
next( )
◦ Moves the iterator to the next element in the array and returns it
prev( )
◦ Moves the iterator to the previous element in the array and returns it
end( )
◦ Moves the iterator to the last element in the array and returns it
each( )
◦ Returns the key and value of the current element as an array and
moves the iterator to the next element in the array
key( )
◦ Returns the key of the current element
The each( ) function is used to loop over the elements of an
array. It processes elements according to their internal order:
39. To extract only a subset of the array, use the array_slice( )
function:
$subset = array_slice(array, offset, length);
The array_slice( ) function returns a new array consisting of
a consecutive series of values from the original array. The
offset parameter identifies the initial element to copy (0
represents the first element in the array), and the length
parameter identifies the number of values to copy. The new
array has consecutive numeric keys starting at 0.
Example
$people = array('Tom', 'Dick', 'Harriet', 'Brenda', 'Jo');
$middle = array_slice($people, 2, 2);
// $middle is array('Harriet', 'Brenda')
Example:-
$person = array('name' => 'Fred', 'age' => 35, 'wife' => 'Betty');
$subset = array_slice($person, 1, 2);
// $subset is array(0 => 35, 1 => 'Betty')
Slicing an
array
40. Creating variables from
arrayThe extract( ) function automatically
creates local variables from an array. The
indexes of the array elements are the
variable names
$person = array('name' => 'Fred', 'age' => 35, 'wife' =>
'Betty');
extract($person); // $name, $age, and $wife are now
set
print $name;
If a variable created by the extraction has the
same name as an existing one, the extracted
variable overwrites the existing variable.
$shape = "round"; $array = array("cover" => "bird", "shape"
=> "rectangular");
extract($array, EXTR_PREFIX_SAME, "book");
echo "Cover: $book_cover, Book Shape: $book_shape,
Shape: $shape";
41. Sorting one
array
Effect Ascending Descending
User-defined
order
Sort array by values, then
reassign indexes starting
with 0
sort( ) rsort( ) usort( )
Sort array by values asort( ) arsort( ) uasort( )
Sort array by keys ksort( ) krsort( ) uksort( )
42. print_r()
◦ print_r() displays information about a
variable in a way that's readable by
humans.
var_dump()
◦ This function displays structured
information about one or more
expressions that includes its type and
value.
◦ Example :-
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
Array ( [a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z )
)
43. explode() takes a string and splits it into
separate elements of an array using the
argument provided as a delimiter.
◦ explode(separator,string,limit)
◦ <?php
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?>
explode()
Parameter Description
separator Required.Delimitor using which you can
break string.
string Required. The string to split
limit Optional. Specifies the maximum number
of array elements to return.
44. implode() traverses through the
elements of an array and re-creates a
single string.
implode(separator,array)
<?php
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr);
?>
Output :- Hello World! Beautiful Day!
Implode()
Parameter Description
separator Optional. Specifies what to put
between the array elements. Default is
"" (an empty string)
array Required. The array to join to a string
45. Functions
A function is a block of code that has a
name and it has a property that it is
reusable.
Function groups a number of script
statements into a unit and gives it a
name.
To keep the script from being executed
when the page loads, you can put it into a
function.
A function will be executed by a call to the
function.
You may call a function from anywhere
within a page.
46. Syntax for
function
function functionName($param1,
$param2,…)
{
code to be executed;
return $value;
}
Example :-
<?php
function writeName()
{
echo “ABC";
}
echo "My name is ";
writeName();
?>
Example : with parameter
<?php
function writeName($fname)
{
echo $fname . “Paul.<br />";
}
echo "My name is ";
writeName("Jim");
echo "My sister's name is ";
writeName(“Agnes");
echo "My brother's name is ";
writeName("Steve");
?>
47. Date Time functions
int time ( )
◦ It returns you the current time
int strtotime ( string time [, int now])
◦ It converts string to timestamp. The string
time to convert, and a second optional
parameter that can be a relative timestamp.
string date ( string format [, int
timestamp])
◦ Parameter one is a special string containing
formatting codes for how you want the
timestamp converted. Parameter two is the
timestamp you want to convert - if you do not
supply it, PHP assumes you want to use the
current time.
48. Mathematical
FunctionsPHP provides you wide set of mathematical functions.
float ceil ( float value) – rounds to nearest int above current value.
float floor ( float value) - rounds to the nearest int below current
value.
float round ( float value [, int precision]) – rounds up the
specified value as first parameter to the specified precision as
second parameter.
Trigeonometric functions as:
float sin ( float value)
float cos ( float value)
float tan ( float value)
float asin ( float value)
float acos ( float value)
float atan ( float value)
float deg2rad ( float value)
float rad2deg ( float value)
49. Mathematical
Constants
Constant Meaning
M_PI PI (Value : 3.14159265358979323846 )
M_SQRTP
I
Sqrt(M_PI)
(Value :1.77245385090551602729 )
M_SQRT2 Sqrt(2) Value : 1.414213562373095
M_SQRT3 Sqrt(3) Value : 1.732050807568877
50. String
unctions• substr() :-This function returns the part of the string as an output.
Syntax : -
string substr(<string s>,<int start>,[<int length>]);
Examples :-
<?php echo substr("Hello world",6); ?> //Returns world
<?php echo substr("Hello world",6,4); ?> // Returns worl
<?php echo substr("Hello world", -1); ?> // Returns d
<?php echo substr("Hello world", -3, -1); ?> // Returns rl
• strlen() :-This function returns the length of the string.
Syntax :- int strlen(<string s>);
string s: It is mandatory field. The string whose length is to be found out is
mentioned here.
Example :-
<?php echo strlen("Hello world"); ?> // Returns 11
•trim() :-This function removes the whitespaces from both start and the end
of the string.
Syntax :- string trim(<string s>);
Example :-
<?php echo trim( " Hello World "); ?>//Hello World
51. ltrim() :- This function removes the whitespaces from
the left part of the string.
◦ Syntax:- string ltrim(<string s>);
◦ Example :-
<?php echo ltrim( " Hello World "); ?> // returns Hello World
rtrim() :- This function removes the whitespaces from the right
part of the string.
Syntax :- string rtrim(<string s>);
◦ Example :-
<?php echo rtrim( " Hello World "); ?>// Hello World
strtolower() :-This function converts the string to lower case
◦ Syntax : string strtolower(<string s>);
◦ Example :-
<?php echo strtolower("HELLO WORLD"); ?> // Returns hello world
52. strtoupper():-This function converts the
string to upper case
◦ Syntax :strtoupper(<string s>);
◦ Example :-
◦ <?php echo strtoupper("hello world"); ?> //
Returns HELLO WORLD
strcmp():-The strcmp() function compares
two strings.
◦ This function returns:
◦ 0 – if the two strings are equal
◦ <0 – if string1 is less than string2
◦ >0 – if string1 is greater than string2
◦ Syntax : strcmp(<string1>,<string2>);
◦ Example :-
◦ <?php echo strcmp("Hello world!","Hello world!");
?> // 0
53. Regular
Expression
Usually referred as regex.
Regular expression is a specially
formatted pattern that can be used to
find instances of one string within
another.
Regular expressions in PHP are similar
to find/replace tools in text editors.
Regex engine is s/w that can process
regex such as trying to match a pattern
within given string.
54. Common Uses of Regular
ExpressionsIn Web application, regular expression
would be helpful as under:
◦ Input Validation
◦ Verifying input format
◦ Parsing data from pre-defined variables
◦ Searching for and replacing data in a file or
database.
55. Regular Expression
Functions
Function Description
preg_filter() Performs a regex search and replace.
preg_grep() Returns array entries that match the pattern.
preg_last_error
()
Returns error code of the last PCRE regex
execution.
preg_match() Performs regular expression match.
preg_match_all
()
Performs a global regular expression match.
preg_quote() Quote regular expression characters.
preg_replace() Performs a regex search and replace.
preg_split() Split string by a regular expression.