+ All Categories
Home > Documents > PHP PHP: Hypertext Preprocessing

PHP PHP: Hypertext Preprocessing

Date post: 23-Feb-2016
Category:
Upload: keene
View: 115 times
Download: 4 times
Share this document with a friend
Description:
PHP PHP: Hypertext Preprocessing. What is PHP?. PHP is a server-side scripting language designed specifically for the Web. An open source language PHP code can be embedded within an HTML page, which will be executed each time that page is visited. Example code (all equivalent): - PowerPoint PPT Presentation
61
PHP PHP: Hypertext Preprocessing
Transcript
Page 1: PHP PHP: Hypertext Preprocessing

PHPPHP: Hypertext Preprocessing

Page 2: PHP PHP: Hypertext Preprocessing

What is PHP?• PHP is a server-side scripting language designed

specifically for the Web.• An open source language• PHP code can be embedded within an HTML page,

which will be executed each time that page is visited.• Example code (all equivalent):

– Short Style: <? echo “Hello World!”; ?>– XML Style: <?php echo “Hello World!”; ?>– Script Style: <SCRIPT LANGUAGE=‘php’> echo “Hello World!”;

</SCRIPT>– ASP Style: <% echo “Hello World!”; %>

Page 3: PHP PHP: Hypertext Preprocessing

History of PHP

• Created by Rasmus Lerdorf in 1994• Originally a set of Perl scripts used by Lerdorf

to show off his résumé as well as collect information on his website, such as the site’s traffic info.

• Lerdorf later transcribed these Perl scripts into a set of CGI binaries written in C, and in doing so, combined it with his own Form Interpreter to create PHP/FI.

Page 4: PHP PHP: Hypertext Preprocessing

History of PHP

• PHP/FI grew in popularity, but did not become widely known until two program developers named Zeev Suraski and Andi Gutmans, developed a new parser in the summer of 1997, which led to the development of PHP 3.0.

• The newest version out is PHP 5, which uses an engine developed by Suraski and Gutmans, known as the Zend II Engine. (Zend I was used by PHP 4)

Page 5: PHP PHP: Hypertext Preprocessing

PHP Programming Paradigms

• Uses both procedural and object oriented paradigms

• Procedural PHP– Has been in use since the creation of PHP, its primary

paradigm.– Allows for easy and quick learning of the PHP language.– Similar to other popular languages such as Visual Basic,

C++, and Fortran.

Page 6: PHP PHP: Hypertext Preprocessing

PHP Programming Paradigms• Object Oriented PHP

– Similar to Java, example of an object class:<?phpclass BaseClass { function __construct() { echo "In BaseClass constructor<br>"; }}

class SubClass extends BaseClass { function __construct() { parent::__construct(); echo "In SubClass constructor<br>"; }}

$obj = new BaseClass();$obj = new SubClass();?>

public class BaseClass { public BaseClass() {

System.out.println("In BaseClass constructor\n"); }}

class SubClass extends BaseClass { public SubClass() {

super();System.out.println("In SubClass constructor\n");

}}-----------------------------------------public class Output { public static void main(String[] args) {

Object obj;

obj = new BaseClass();obj = new SubClass();

}}

Page 7: PHP PHP: Hypertext Preprocessing

Features of PHP• Very Efficient – Can serve millions of hits per day.

• Database Integration – Supports many databases, such as mySQL and Oracle. Also has excellent XML support as of PHP 5.

• Built-in Libraries – Tailored to web development, one can connect to other network services, send email, work with cookies, generate PDF documents, and make GIF images on the fly all with a few lines of code.

• It’s Free – Available on http://www.php.net

• Easy to Learn – Very similar in syntax to C/C++/Java and Perl.

• Portable – Works on Unix based operating systems, on Mac OS X, as well as on versions of Microsoft Windows. Your PHP code will often work without modification on a different system running PHP.

Page 8: PHP PHP: Hypertext Preprocessing

Database Support

• The following is a list of supported databases in PHP 5:

Adabas D InterBase PostgreSQL dBase FrontBase SQLite Empress mSQL  

FilePro (read-only)SolidDirect MS-SQLSybaseHyperwavemySQLVelocis

ODBCUnix dbmInformixOracle (OCI7 and OCI8)

IngresOvrimosIBM DB2

Page 9: PHP PHP: Hypertext Preprocessing

Differences From Java• Data types are not required in variable

declarations.• The $ symbol precedes all variables in PHP• Constants are declared using the define() method

in PHP: ex. define(“AOL", "something"); • Constructors do not necessarily have to be the

same name as the class name.• Destructors are used in PHP to remove objects

from memory after they are constructed.

Page 10: PHP PHP: Hypertext Preprocessing

What is PHP Good For?

• It is great for complex web page designs– E-commerce sites with heavy traffic (ex. Amazon)– Complex bulletin boards and forums (ex. phpBB)– Secure websites (ex. Novasis)– Email web hosts (ex. Gmail)– Working with and integrating XML into your webpage– Database management and search (ex. theFaceBook)

Page 11: PHP PHP: Hypertext Preprocessing

How static web pages are processed

HTTP request

HTTP responseHTML

file

Web Server

`

Web Browser

Page 12: PHP PHP: Hypertext Preprocessing

A simple HTTP request GET / HTTP/1.1 Host: www.example.com

A simple HTTP response HTTP/1.1 200 OK Content-Type: text/html Content-Length: 136 Server: Apache/2.2.3 <html> <head> <title>Example Web Page</title> </head> <body> <p>This is a sample web page</p> </body> </html>

Page 13: PHP PHP: Hypertext Preprocessing

How dynamic web pages are processed with PHP

Web Server

PHPScript

Database Server

HTTP request

HTTP response`

Web Browser

Page 14: PHP PHP: Hypertext Preprocessing

MySQL notes MySQL is owned and sponsored by MySQL AB, a for-profit

firm. In 2008, Sun Microsystems acquired MySQL AB. In 2009, Oracle Corporation acquired Sun Microsystems. In 2009, many of the original developers of MySQL left MySQL

AB and begin working on different forks of the open-source code. One of the most popular of these forks is MariaDB.

Page 15: PHP PHP: Hypertext Preprocessing

Simple PHP Example

• http://www.cis.udel.edu/~haggerty/teaching/CISC474/11S/example/php/prod_discount/

Page 16: PHP PHP: Hypertext Preprocessing
Page 17: PHP PHP: Hypertext Preprocessing
Page 18: PHP PHP: Hypertext Preprocessing
Page 19: PHP PHP: Hypertext Preprocessing
Page 20: PHP PHP: Hypertext Preprocessing
Page 21: PHP PHP: Hypertext Preprocessing
Page 22: PHP PHP: Hypertext Preprocessing
Page 23: PHP PHP: Hypertext Preprocessing
Page 24: PHP PHP: Hypertext Preprocessing

Objectives Applied 1. Use any of the functions and techniques that are presented in this

chapter to work with strings. 2. Use any of the functions and techniques that are presented in this

chapter to work with numbers.

Page 25: PHP PHP: Hypertext Preprocessing

Objectives (continued) Knowledge 1. Describe the way variable substitution is used to assign a string to

a variable. 2. Describe the way PHP escape sequences can be used to insert

special characters into strings and how the htmlentities function can be used to display special characters correctly in a browser.

3. Describe these terms as they apply to a PHP string: length, substring, and position.

4. Describe the use of the PHP string functions that return string lengths or substrings, search for or replace characters in a string, modify a string, convert between strings and arrays, and compare two strings.

Page 26: PHP PHP: Hypertext Preprocessing

Objectives (continued)

Knowledge (continued) 5. Describe the PHP is_infinite and is_finite functions, and describe

these PHP constants: PHP_INT_MAX, INF, and -INF. 6. Describe these PHP functions for working with numbers: max,

min, pow, round, sqrt, and mt_rand. 7. Describe the use of the sprintf function for formatting strings and

numbers. 8. Describe the use of type casting and the use of the intval and

floatval functions.

Page 27: PHP PHP: Hypertext Preprocessing

Assign strings with single quotes $language = 'PHP'; $message = 'Welcome to ' . $language; $query = 'SELECT firstName, lastName FROM Users';

Assign strings with double quotes Using variable substitution $language = "PHP"; $message = "Welcome to $language";

Using braces with variable substitution $count = 12; $item = "flower"; $message1 = "You bought $count $items."; $message2 = "You bought $count ${item}s.";

Page 28: PHP PHP: Hypertext Preprocessing
Page 29: PHP PHP: Hypertext Preprocessing

Escape sequences only used in some strings \\ \' \"

Escape sequences used in double-quoted strings and heredocs

\$ \n \t \r \f \v \ooo \xhh

Page 30: PHP PHP: Hypertext Preprocessing

Escape sequences with single quotes $dir = 'C:\\xampp\\php'; $name = 'Mike\'s Music Store'; $quote = "He said, \"It costs \$12.\""; $comment1 = "This is a\nmulti-line string."; $comment2 = 'Not a\nmulti-line string.';

Page 31: PHP PHP: Hypertext Preprocessing

The htmlentities function htmlentities($str [, $quotes])

Examples of the htmlentities function An example that doesn’t use the htmlentities function $copyright1 = "\xa9 2010"; echo $copyright1;

An example that uses the htmlentities function $copyright2 = htmlentities("\xa9 2010"); echo $copyright2;

Page 32: PHP PHP: Hypertext Preprocessing

A URL for a list of all PHP string functions http://www.php.net/manual/en/ref.strings.php

Functions for working with string length and substrings

empty($str) strlen($str) substr($str, $i[, $len])

Page 33: PHP PHP: Hypertext Preprocessing
Page 34: PHP PHP: Hypertext Preprocessing

Code that formats a phone number in two ways $phone = '5545556624'; $part1 = substr($phone, 0, 3); $part2 = substr($phone, 3, 3); $part3 = substr($phone, 6); $format_1 = $part1 . '-' . $part2 . '-' . $part3; $format_2 = '(' . $part1 . ') ' . $part2 . '-' . $part3;

Code that displays each letter in a string on a separate line

$input = 'JAN'; for ($i = 0; $i < strlen($input); $i++) { $vert_str .= substr($input, $i, 1); $vert_str .= '<br />'; }

Page 35: PHP PHP: Hypertext Preprocessing

Functions that search a string strpos($str1, $str2[, $offset]) stripos($str1, $str2[, $offset]) strrpos($str1, $str2[, $offset]) strripos($str1, $str2[, $offset])

Code that searches a string for spaces $name = 'Martin Van Buren'; $i = strpos($name, ' '); $i = strpos($name, ' ', 7); $i = strrpos($name, ' ');

Code that searches a string for a substring $name = 'Martin Van Buren'; $i = strpos($name, 'Van'); $i = strpos($name, 'van'); $i = stripos($name, 'van'); $i = strripos($name, 'A');

Page 36: PHP PHP: Hypertext Preprocessing

Code that splits a string into two substrings $name = 'Ray Harris'; $i = strpos($name, ' '); if ($i === false) { $message = 'No spaces were found in the name.'; } else { $first_name = substr($name, 0, $i); $last_name = substr($name, $i+1); }

Page 37: PHP PHP: Hypertext Preprocessing

Functions that replace part of a string str_replace($str1, $new, $str2) str_ireplace($str1, $new, $str2)

Code that replaces periods with dashes $phone = '554.555.6624'; $phone = str_replace('.', '-', $phone);

Code that replaces one string with another string $message = 'Hello Ray'; $message = str_ireplace('hello', 'Hi', $message);

Page 38: PHP PHP: Hypertext Preprocessing

Functions that modify strings ltrim($str) rtrim($str) trim($str) str_pad($str, $len [, $pad[, $type]]) lcfirst($str) ucfirst($str) ucwords($str) strtolower($str) strtoupper($str) strrev($str) str_shuffle($str) str_repeat($str, $i)

Page 39: PHP PHP: Hypertext Preprocessing

Code that trims and pads a string $name = ' ray harris '; $name = ltrim($name); $name = rtrim($name); $name = str_pad($name, 13); $name = str_pad($name, 16, ' ', STR_PAD_LEFT); $name = trim($name);

Code that works with capitalization $name = ucfirst($name); $name = lcfirst($name); $name = ucwords($name); $name = strtolower($name); $name = strtoupper($name);

Page 40: PHP PHP: Hypertext Preprocessing

Code that changes the sequence of the characters $name = strrev($name); $name = str_shuffle($name);

Code that repeats a string $sep = str_repeat('*', 10);

Page 41: PHP PHP: Hypertext Preprocessing

Functions that convert strings and arrays explode($sep, $str) implode($sep, $sa)

How to convert a string to an array $names = 'Mike|Anne|Joel|Ray'; $names = explode('|', $names); $name1 = $names[0]; $name2 = $names[1];

How to convert an array to a string $names = implode('|', $names);

How to convert an array to a tab-delimited string $names = implode('\t', $names);

Page 42: PHP PHP: Hypertext Preprocessing

Functions that convert between strings and ASCII integer values

chr($value) ord($string)

How to convert an integer value to a character $char = chr(65); // $char is 'A' $char = chr(66); // $char is 'B'

How to convert a character to an integer value $val = ord('A'); // $val is 65 $val = ord('B'); // $val is 66 $val = ord('Bike'); // $val is 66

Page 43: PHP PHP: Hypertext Preprocessing

Functions that compare two strings strcmp($str1, $str2) strcasecmp($str1, $str2) strnatcmp($str1, $str2) strnatcasecmp($str1, $str2)

How a case-sensitive comparison works $result = strcmp('Anders', 'Zylka'); // $result = -1 $result = strcmp('Anders', 'zylka'); // $result = 1 $result = strcasecmp('Anders', 'zylka'); // $result = -25

How a “natural” number comparison works $result = strcmp('img06', 'img10'); // $result = -1 $result = strcmp('img6', 'img10'); // $result = 1 $result = strnatcmp('img6', 'img10'); // $result = -1

Page 44: PHP PHP: Hypertext Preprocessing

How to compare two strings $result = strnatcasecmp($name_1, $name_2); if ($result < 0) { echo $name_1 . ' before ' . $name_2; } else if ($result == 0) { echo $name_1 . ' matches ' . $name_2; } else { echo $name_1 . ' after ' . $name_2; }

Page 45: PHP PHP: Hypertext Preprocessing

How to assign a decimal value (base 10) $number_1 = 42; $number_2 = +72; $number_3 = -13; $number_4 = -(-39); $number_5 = --39; // Error

How to find the maximum and minimum integer values (base 10)

$max_int = PHP_INT_MAX; $min_int = -1 * (PHP_INT_MAX + 1);

Page 46: PHP PHP: Hypertext Preprocessing

How to assign an octal value (base 8) $octal_1 = 0251; // Must begin with 0 $octal_2 = -0262;

How to assign a hexadecimal value (base 16) $hex_1 = 0X5F; // Must begin with 0x or 0X $hex_2 = 0x4a3b; // Upper and lower case allowed

Page 47: PHP PHP: Hypertext Preprocessing

How to assign floating-point values Using normal notation $float_1 = 3.5; // Must contain a decimal point $float_2 = -6.0; // May be negative $float_3 = .125; // Same as 0.125 $float_4 = 1.; // Same as 1.0

Using exponential notation $exp_1 = 9.451e15; // Expands to 9.451 × 1015 $exp_2 = 6.022e+23; // Plus sign is optional $exp_3 = 1.602e-19; // Exponent may be negative $exp_4 = 9.806e0; // Exponent may be zero $exp_5 = -1.759e11; // Mantissa may be negative $exp_6 = 3e9; // Mantissa may be a whole number

Page 48: PHP PHP: Hypertext Preprocessing

Two functions for working with infinity is_infinite($value) is_finite($value)

Working with infinity Getting an infinite value $inf_x = INF; // Positive infinity, case-sensitive $inf_x = -INF; // Negative infinity $inf_x = 1e200 * 1e200; // Result is INF $inf_x = 1 + INF; // Result is INF $inf_x = 1 / INF; // Result is 0 $inf_x = 1 / 0; // Generates a warning

Testing for an infinite value $result = 1e200 * 1e200; if (is_infinite($result)) { echo('Result was out of range.'); } else { echo('Result is ' . $result); }

Page 49: PHP PHP: Hypertext Preprocessing

URL for a list of all PHP math functions http://www.php.net/manual/en/ref.math.php

Common mathematical functions abs($value) ceil($value) floor($value) max($n1, $n2[, $n3 ...]) min($n1, $n2[, $n3 ...]) pi() pow($base, $exp) round($value[, $precision]) sqrt($value)

Page 50: PHP PHP: Hypertext Preprocessing

How to round a number $subtotal = 15.99; $tax_rate = 0.08; $tax = round($subtotal * $tax_rate, 2);

How to get the square root of a number $num1 = 4; $root = sqrt($num1);

How to work with exponents $num2 = 5; $power = pow($num2, 2);

Page 51: PHP PHP: Hypertext Preprocessing

How to calculate the distance between two points $x1 = 5; $y1 = 4; $x2 = 2; $y2 = 8; $distance = sqrt(pow($x1 - $x2, 2) + pow($y1 - $y2, 2));

How to place a maximum bound on a number $value = 15; $max_value = 10; $value = min($max_value, $value); // 10

Page 52: PHP PHP: Hypertext Preprocessing

Functions that generate random numbers getrandmax() rand() rand($lo, $hi) mt_getrandmax() mt_rand() mt_rand($lo, $hi)

Page 53: PHP PHP: Hypertext Preprocessing

How to simulate a random dice roll $dice = mt_rand(1, 6);

How to generate a random value between 0 and 1 with 5 decimal places

$number = 0; $places = 5; for($i = 0; $i < $places; $i++) { $number += mt_rand(0,9); $number /= 10; } echo $number;

Page 54: PHP PHP: Hypertext Preprocessing

How to generate a random password $password_length = 8; // Add a symbol to the password $symbols = '~!@#$%^&*()-_=+[]{};:,.<>?'; $symbol_count = strlen($symbols); $index = mt_rand(0, $symbol_count - 1); $password = substr($symbols, $index , 1); $password .= chr(mt_rand(48, 57)); $password .= chr(mt_rand(65, 90)); // Add lowercase letters to reach the specified length while (strlen($password) < $password_length) { $password .= chr(mt_rand(97, 122)); } $password = str_shuffle($password); echo $password;

Page 55: PHP PHP: Hypertext Preprocessing

The sprintf function sprintf($format, $val1[, val2 ...])

Data type code Character Formats… s The value as a string. d The value as an integer. f The value as a floating-point number. e The value using exponential notation. c An integer value as its corresponding ASCII

character. b An integer value as a binary number. o An integer value as an octal number. x An integer value as a hexadecimal number

(lowercase).

Page 56: PHP PHP: Hypertext Preprocessing

A sprintf function that formats two values $message = sprintf('The book about %s has %d pages.', 'PHP', 800);

How to use sprintf to convert numbers to strings $s1 = sprintf('It cost %s dollars', 12); $s2 = sprintf('%s', 4.5); $s3 = sprintf('%s', 9451000.000000); $s4 = sprintf('%f', 9.451e6); $s5 = sprintf('%e', 9451000.000000); $s6 = sprintf('%c', 65); $s7 = sprintf('%x', 15); $s8 = sprintf('%X', 15); $s9 = sprintf('%s%%', 4.5);

Page 57: PHP PHP: Hypertext Preprocessing

The parts of a format code Specifier Required? % Required Sign Optional Alignment Optional Padding Optional Width Optional Precision Optional Data Type Required

Page 58: PHP PHP: Hypertext Preprocessing

How to use the optional specifiers $s1 = sprintf("%+d", 42); $s2 = sprintf("%+d", -42); $s3 = sprintf("%10s", 'PHP'); $s4 = sprintf("%-10s", 'PHP'); $s5 = sprintf("%-'*10s", 'PHP'); $s6 = sprintf("%6d", 42); $s7 = sprintf("%06d", 42); $s8 = sprintf("%02d-%02d-%04d", 3, 5, 2010); $s9 = sprintf("%010.2f", 123.456);

How to generate a random HTML color $color = '#'; for($i = 0; $i < 6; $i++) { $color .= sprintf("%x", mt_rand(0,15) ); } echo $color;

Page 59: PHP PHP: Hypertext Preprocessing

Two functions for converting strings to numbers intval($var) floatval($var)

Page 60: PHP PHP: Hypertext Preprocessing

How to convert a string to an integer Using type casting $value_1 = (int) '42'; $value_2 = (int) '42.5'; $value_3 = (int) '42 miles'; $value_4 = (int) '2,500 feet'; $value_5 = (int) 'miles: 42'; $value_6 = (int) 'miles'; $value_7 = (int) '10000000000'; $value_8 = (int) '042'; $value_9 = (int) '0x42';

Using the intval function $value = intval('42');

Page 61: PHP PHP: Hypertext Preprocessing

How to convert a string to a floating-point number Using type casting $value_1 = (float) '4.2'; $value_2 = (float) '4.2 gallons'; $value_3 = (float) 'gallons'; $value_4 = (float) '1.5e-3'; $value_5 = (float) '1e400';

Using the floatval function $value = floatval('4.2');


Recommended