Introduction to PHP Martin Kruliš by Martin Kruliš (v1.1) 21.11.2016.

Slides:



Advertisements
Similar presentations
PHP I.
Advertisements

Learning Web development. 3(+1) Tier architecture PHP script Remote services Web Server (Apache, IIS) Browser (IE, FireFox, Opera) Desktop (PC or MAC)
Javascript Client-side scripting. Up to now  We've seen a little about how to control  content with HTML  presentation with CSS  Javascript is a language.
Introduction to PHP. PHP Origins Rasmus LerdorfRasmus Lerdorf (born Greenland, ed Canada) PHP originally abbreviation for ‘Personal Home Pages’, now ‘PHP.
Intermediate PHP (1) Data Structures, Functions, Basic OO & Error Handling.
By Brian Patterson & Amanda Perez. PHP was originally created to maintain his personal homepage, hence the name PHP. Development began in 1994 and was.
Guide To UNIX Using Linux Third Edition
PHP Server-side Programming. PHP  PHP stands for PHP: Hypertext Preprocessor  PHP is interpreted  PHP code is embedded into HTML code  interpreter.
 2004 Prentice Hall, Inc. All rights reserved. Chapter 25 – Perl and CGI (Common Gateway Interface) Outline 25.1 Introduction 25.2 Perl 25.3 String Processing.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
Introduction to PHP. PHP PHP is the Hypertext Pre-processor –Script language –Embedded into HTML –Runs as Apache module –Can use DB (MySQL, Oracle, Microsoft.
UFCEKG-20-2 Data, Schemas & Applications Lecture 4 Server Side Scripting & PHP.
Introduction to PHP and Server Side Technology. Slide 2 PHP History Created in 1995 PHP 5.0 is the current version It’s been around since 2004.
Copyright © Curt Hill PhP History and Introduction.
Chapter 4 – The Building Blocks Data Types Literals Variables Constants.
ITD 3194 Web Application Development Chapter 4: Web Programming Language.
An Introduction to PHP The University of Tennessee at Chattanooga C. Daniel Chase “An introduction to basic PHP use with a focus on the power of dynamic.
PHP TUTORIAL. HISTORY OF PHP  PHP as it's known today is actually the successor to a product named PHP/FI.  Created in 1994 by Rasmus Lerdorf, the very.
School of Computing and Information Systems CS 371 Web Application Programming PHP - Basics Serving up web pages.
Chap 3 – PHP Quick Start COMP RL Professor Mattos.
November 2003Bent Thomsen - FIT 6-11 IT – som værktøj Bent Thomsen Institut for Datalogi Aalborg Universitet.
PHP By Sergio Rodriguez By Sergio Rodriguez. PHP G PHP: Hypertext Preprocessor G Scripting language G PHP: Hypertext Preprocessor G Scripting language.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
Introduction to PHP A user navigates in her browser to a page that ends with a.php extension The request is sent to a web server, which directs the request.
Variables and ConstantstMyn1 Variables and Constants PHP stands for: ”PHP: Hypertext Preprocessor”, and it is a server-side programming language. Special.
CS320 Web and Internet Programming Introduction to PHP Chengyu Sun California State University, Los Angeles.
Introduction to PHP Advanced Database System Lab no.1.
What is PHP? PHP stands for PHP: Hypertext Preprocessor PHP is a server-side scripting language, like ASP PHP scripts are executed on the server PHP supports.
Data TypestMyn1 Data Types The type of a variable is not set by the programmer; rather, it is decided at runtime by PHP depending on the context in which.
הרצאה 4. עיבוד של דף אינטרנט דינמי מתוך Murach’s PHP and MySQL by Joel Murach and Ray Harris.  דף אינטרנט דינמי משתנה עפ " י הרצת קוד על השרת, יכול להשתנות.
Martin Kruliš by Martin Kruliš (v1.1)1.
Martin Kruliš by Martin Kruliš (v1.1)1.
1Introduction to PHP 5 Presented by Brett Buddin.
Open Source Server Side Scripting ECA 236 Open Source Server Side Scripting PHP Basics.
Basic Scripting & Variables Yasar Hussain Malik - NISTE.
1 PHP Intro PHP Introduction After this lecture, you should be able to: Know the fundamental concepts of Web Scripting Languages in general, PHP in particular.
Dr. Abdullah Almutairi Spring PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages. PHP is a widely-used,
Introduction to PHP. PHP Origins Rasmus LerdorfRasmus Lerdorf (born Greenland, ed Canada) PHP originally abbreviation for ‘Personal Home Pages’, now ‘PHP.
Presented By Sushil K. Chaturvedi Assistant Professor SRCEM,Banmore 1.
PHP Programming Language. PHP is a server-side scripting language designed for web development but also used as a general- purpose programming language.
PHP using MySQL Database for Web Development (part II)
CGS 3066: Web Programming and Design Spring 2017
PHP (Session 1) INFO 257 Supplement.
PHP for Server-Side Programming
CS 330 Class 7 Comments on Exam Programming plan for today:
Chapter 6 JavaScript: Introduction to Scripting
Lecture 2: Intro to PHP What is PHP?
CS 371 Web Application Programming
Introduction Python is an interpreted, object-oriented and high-level programming language, which is different from a compiled one like C/C++/Java. Its.
Java Primer 1: Types, Classes and Operators
DBW - PHP DBW2017.
Arrays An array in PHP is an ordered map
PHP (PHP: Hypertext Preprocessor)
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van Rossum during.
Server-Side Application and Data Management IT IS 3105 (Spring 2010)
PHP Introduction.
Intro to PHP & Variables
Advanced Programming Behnam Hatami Fall 2017.
JavaScript an introduction.
Web Systems Development (CSC-215)
PHP.
Web DB Programming: PHP
CS 3304 Comparative Languages
Python Primer 1: Types and Operators
HYPERTEXT PREPROCESSOR BY : UMA KAKKAR
Lecture 5: Functions and Parameters
Intro to PHP.
JavaScript CS 4640 Programming Languages for Web Applications
PHP: Hypertext Preprocessor
PHP an introduction.
Presentation transcript:

Introduction to PHP Martin Kruliš by Martin Kruliš (v1.1) 21.11.2016

About PHP PHP: Hypertext Preprocessor History A powerful scripting language based on Perl syntax It was designed specifically for creating web pages History 1994 Rasmus Lerdorf created set of scripts for maintaining his home page (which used CGI) Designed in Perl, re-written in C for performance Denoted “Personal Home Page/Forms Interpreter” Released for public usage in 1995, community formed 1997 PHP/FI 2.0 released The mascot is called elePHPant by Martin Kruliš (v1.1) 21.11.2016

About PHP History 1997 Zeev Suraski and Andi Gutmans Rewrote entire PHP parser (base for PHP 3) Rebranded to “PHP: Hypertext Preprocessor” 1999 PHP core rewritten to Zend Engine 2000 PHP 4 released (based on Zend Engine 1.0) OOP first introduced to PHP (in a bad way) 2004 PHP 5 released (Zend Engine II) OOP completely redesigned 2015 PHP 7 released (Zend Engine III, AST-based) Current version 7.1 (2016) Note that there is no PHP 6. PHP6 was promised for a long time; however, many features advertised for PHP 6 were implemented in PHP 5.x branch. Therefore, the community decided to skip PHP 6 and announce PHP 7. by Martin Kruliš (v1.1) 21.11.2016

PHP Scripts HTML Interleaving Pure PHP Scripts PHP script file is treated as text (HTML) document Contents between <?php and ?> is treated as script When the file is processed, the interpret removes script parts executes them and replaces them by their output Script output is generated by echo or print() Script controls prevail the HTML code Short hand mark <? is equivalent of <?php and shorthand mark <?= is the same as <?php echo … Pure PHP Scripts Must also start with <?php, but no ending mark is required (nor recommended) Note that the short hand marks may be disabled on the server and there are some times good reasons for that (e.g., when the PHP markup could mix up with XML markup). by Martin Kruliš (v1.1) 21.11.2016

HTML Interleaving HTML Interleaving Example Example 1 <html> <head> <title>PHP Example</title> </head> <body> <?php if (has_headline()) { ?> <h1>Conditional H1</h1> <?php } ?> <?php for($i=1; $i<4; $i++) { ?> <div><? echo $i; ?></div> </body> </html> <html> <head> <title>PHP Example</title> </head> <body> <h1>Conditional H1</h1> <div>1</div> <div>2</div> <div>3</div> </body> </html> Example 1 by Martin Kruliš (v1.1) 21.11.2016

PHP Language Basic Syntax C-like syntax with relics from Perl Statement separated by ';', blocks enclosed in {,} Line comments //…\n, block comments /* … */ Standard control structures if (cond) stmt; elseif (cond2) stmt2; else ... while (cond) stmt; do stmt; while (cond); for (init; cond; inc) stmt; foreach (array as [ $key => ] $value) stmt; Simple way to include files (both scripts and HTML) include file; include_once file; require file; require_once file; Example 2 by Martin Kruliš (v1.1) 21.11.2016

PHP Language Values and Data Types Values in PHP have explicit type Scalar (boolean, integer, float, or string) Compound (array, object) Special (resource, NULL) Type can be tested by built-in functions is_int(), is_string(), is_numeric(), is_scalar(), … gettype() returns human-readable representation Type casting (explicit re-typing) C-like syntax (type-name)expression Type juggling – automatic type casting by Martin Kruliš (v1.1) 21.11.2016

PHP Language Variables All variables are prefixed with '$' symbol (e.g., $x) No declarations, thus not statically defined type Variable is created by the first assignment Variable has the type of the value assigned to it Variables have function or global scope Keyword global maps global variables in local scope Using non-existing variable generates notice An the value is treated as null Functions for variable manipulation and testing: isset($var), unset($var), var_dump($var) Example 3 by Martin Kruliš (v1.1) 21.11.2016

PHP Language Constants Defined as superglobal (do not have scope) define("MYFOO", expression); echo MYFOO + 42; Magic constants (automatically defined) Their value is related to their position in the code __LINE__ - number of the script line __FILE__ - name of the script file __DIR__ - directory of the script file __FUNCTION__ - name of the outer function __CLASS__ - name of the outer class by Martin Kruliš (v1.1) 21.11.2016

$b value is ‘Say foo’ (ended with newline) PHP Language Expressions Almost every statement is an expression PHP has all standard C-like operators Arithmetic, bitwise, logical, … Identity operator (equality & type equality) '===', '!==' String concatenation is performed by dot '.' String Literals Single quoted strings ('text') – no special treatment Double quoted strings ("text") – interpreted Special escaped characters (\n, \r, \t, …) Variables are replaced by their contents $a = 'foo'; $b = "Say $a\n"; $b value is ‘Say foo’ (ended with newline) by Martin Kruliš (v1.1) 21.11.2016

PHP Language Strings and Text Processing PHP have a huge arsenal of string functions strlen(), substr(), trim(), split(), join(), … Libs for charset manipulation Multibyte string lib Iconv lib Recode Functions for encoding (to URL, HTML, SQL, …) urlencode(), urldecode() htmlspecialchars(), htmlspecialchars_decode() mysqli_real_escape_string() Check out http://php.net/ref.strings . by Martin Kruliš (v1.1) 17. 12. 2015

PHP Language Regular Expressions String search patterns based on regular automata Used for pattern matching, replacement, splitting, … POSIX syntax Same syntax as in unix tools (grep, sed, …) Deprecated as of PHP 5.3 Perl (PCRE) syntax Similar to POSIX syntax, but with more features Separate set of functions in PHP Regular expression evaluation is implemented in C May be faster than implementing string parsing in PHP by Martin Kruliš (v1.1) 17. 12. 2015

$a1 ~ [0=>1, 1=>2, 3=>4] PHP Language Arrays Array in PHP is an ordered map of key-value pairs Can be used as array, list, hash table, dictionary, stack/queue, multi-dimensional array, or tree Defining arrays – array language construct $a1 = array(1, 2, 3); $a2 = array('foo' => 42, 'bar' => 54); Accessing elements echo $a1[1] + $a2['foo']; $a2['spam'] = 19; $a1[] = 4; unset($a1[2]); Each element may have different type Prints ’44’ Note that unset($a1[2]); does not compact the array! Since PHP 5.4, short syntax for creating arrays can be used: [1, 2, 3] is the same as array(1, 2, 3); The following key is assigned $a1 ~ [0=>1, 1=>2, 3=>4] by Martin Kruliš (v1.1) 21.11.2016

PHP Language Arrays Each key can be either an integer or a string Strings containing valid numbers are casted to integers Floats are truncated and casted to integers Booleans are casted to either 0 or 1 null is casted to an empty string Arrays and objects cannot be used as keys Built-in functions for array manipulation array_key_exists(), in_array() array_push(), array_pop(), array_shift() sort(), shuffle() ... Check out http://php.net/manual/en/language.types.array.php and http://php.net/manual/en/ref.array.php. by Martin Kruliš (v1.1) 21.11.2016

PHP Language Functions Declaration Invocation Keyword function followed by the identifier function foo([args, …]) { … body … } The function body can be pretty much anything Even nested function/class declaration A value can be yielded back by the return construct Invocation foo(argument-expressions); Note that functions are not objects like in Javascript, but constructs of the language. Example 4 by Martin Kruliš (v1.1) 21.11.2016

PHP Language Objects and Classes Namespaces PHP OOP mode is similar to classical object- oriented languages (Java, C#), but is also affected by concepts of dynamic scripting languages Traditional classes with member definitions Objects are hash-maps similar to arrays or JS objects Will be covered in the Advanced web technologies Namespaces Logical (directory-like) wrappers for identifiers Affect classes, interfaces, constants, and functions Declared by namespace name; (at the beginning) Namespaces are supported since PHP 5.3 by Martin Kruliš (v1.1) 21.11.2016

HTTP Wrapper Predefined Variables Request data, headers and, server settings are automatically parsed into superglobal arrays $_GET – parameters from request URL $_POST – parameters posted in HTTP body (form data) $_FILES – records about uploaded files $_SERVER – server settings and request headers $_ENV – environment variables Example index.php?foo=bar&arr[]=one&arr[]=two& $_GET will look like array('foo' => 'bar', 'arr' => array('one', 'two')) by Martin Kruliš (v1.1) 21.11.2016

HTTP Wrapper HTTP Response Any output from the script is considered a response Text outside <?php ?> script marks Data written by echo or print() Headers may be modified by a function header('header-line'); The modifications are parsed and moderated by the web server The headers are sent as soon as any output is made Beware the BOM signatures of unicode files Example 5 by Martin Kruliš (v1.1) 21.11.2016

PHP 7 What is new in PHP 7 Improved performance and reduced memory usage Consistent 64-bit support AST-based compilation Many fatal errors converted to exceptions Removed old extensions SAPIs and some other backward-incompatible changes were made New features introduced Anonymous classes Zero cost asserts Scalar and return type declarations by Martin Kruliš (v1.1) 21.11.2016

Discussion by Martin Kruliš (v1.1) 21.11.2016