Difference between revisions of "PHP"
m |
m |
||
Line 4: | Line 4: | ||
* Build Your Own Database Driven Website Using PHP & MySQL 2nd Edition by Kevin Yank | * Build Your Own Database Driven Website Using PHP & MySQL 2nd Edition by Kevin Yank | ||
* PHP and MySQL for Dynamic Web Sites 4th Edition by Larry Ullman | * PHP and MySQL for Dynamic Web Sites 4th Edition by Larry Ullman | ||
** [http://www.larryullman.com/books/php-and-mysql-for-dynamic-web-sites-visual-quickpro-guide-4th-edition/errata/ errata page] | |||
For [[MySQL]] information. | For [[MySQL]] information. |
Revision as of 11:55, 18 September 2012
PHP is a server side scripting language.
My notes originate from the books:
- Build Your Own Database Driven Website Using PHP & MySQL 2nd Edition by Kevin Yank
- PHP and MySQL for Dynamic Web Sites 4th Edition by Larry Ullman
For MySQL information.
Basic Syntax & Commands
PHP statements are always terminated with semicolon (;).
Single quotes are used to mark start and end of text (' ')
All variable names in PHP start with dollar sign ($).
PHP is a loosely typed language. Variables may contain any type of data.
Example:
$variable_name = "Semper Fidelis";
Equal sign is called the assignment operator since it assigns values to variables.
Three ways to create comments. None of these are viewable to users via web browser.
//
/* */
#
arithmetic operators enable you to add, subtract, multiply, & divide.
Concatenation
The concatenation operator, the period "." allows you to add strings of text.
Example:
$variable_name = "Hello" . " there" . " world!"; Assigns value of "Hello there world!" without quotes.
Examples:
variable | comment |
---|---|
$var1 = 'PHP'; | Assigns value of "PHP" to var1 |
$var2 = 5; | Assigns value of 5 to $var2 |
$var3 = $var2 + 1; | Assigns value of 6 to $var3 |
$var2 = $var1; | Assigns value of "PHP" to $var2 |
echo($var1); | Outputs "PHP" |
echo($var2); | Outputs "PHP" |
echo($var3); | Outputs 6 |
echo($var1 . ' rules!'); | Outputs "PHP rules!" |
echo("var1 rules!"); | Outputs "PHP rules!" |
echo('var1 rules!'); | Outputs '$var1 rules!' |
\ | Escape character. Tells PHP to treat next character as text. |
NOTE: Double quotes around text enables the variable name to be inserted & value is displayed. This is called variable interpolation. Single quotes will not interpolate the variable name.
Some of PHP Built-In Functions
echo( "add_text" );
passes a string
Variable interpolation = process of converting variable names to their values
Example: $variable1 = 'PHP4'; // assigns variable1 the value "PHP4" echo("$variable1 rocks!"); // output "PHP4 rocks!" echo('$variable1 rocks!"); // output '$variable1 rocks!'
Arrays: $variable = array('string1','string2',integer);
Integer indexes start from 0 and used to reference contents of array.
Examples:
echo($variable[0]); // output "string1"
echo($variable[1]); // output "string2"
echo($variable[2]); // output "integer"
$variable[3] = 95; // assigns 95 to 4th index (n-1)
$variable[0] = 'string0'; // assigns string0 to index 0.
$variable[] = 55; // assigns 55 to end of array
Associative array:
Use a string as the index. Associate the value with index.
$phone['Joe'] = '555-1212';
$phone['Mike'] = '555-1313';
Example: echo('Mikes phone number is ' . $phone['Mike']);
Predefined Variables
variable | comment |
---|---|
$_GET | is an associative array that PHP will automatically create so values
passed through a URL query string can be accessed. |
$_SERVER | is an array variable that contains information provided by the users
web browser |
Examples of using predefined variables
Example $_SERVER use | comment |
---|---|
$_SERVER['PHP_SELF'] | Identifies the name of script being run. You can use to set browser to reference itself. |
$_SERVER['HTTP_USER_AGENT'] | Identifies web browser and operating system accessing script |
$_SERVER['REMOTE_ADDR'] | Identifies the IP address of the computer accessing script |
urlencode(); will convert special characters within input sting to special codes in order to appear query string
isset(); outputs a true value if variable provided has been assigned a value
exit(); causes PHP to stop reading contents
die(); acts like echo(); immediately followed by exit();
Back
Constants
Constants are a specific data type in PHP that retain their original value throughout the execution of a script.
To create a constant use define() function. Example syntax:
define ('CONSTANT_NAME', 'value');
Constants require special echo syntax for printing.
Constructs
Arrays
A special variable that contains multiple values.
Simple format:
$array_name = array('test1', 'test2', 69);
To retrieve a value stored in an array you need the index.
Generally, arrays use incrementing integers that start with zero as their indices. Indices act as pointers to precisely locate a value in an array.
Expanding on simple format:
code | comment |
---|---|
echo($array_name[0]); | Outputs 'test1' |
echo($array_name[1]); | Outputs 'test2' |
echo($array_name[2]); | Outputs 69 |
$array_name[1] = 'wiki1'; | Assign a new value |
$array_name[3] = 'wiki2'; | Create a new element |
$array_name[] = 'transformers'; | Add element to end of array. |
echo($array_name[4]); | Outputs "transformers" |
Arrays can use strings for indices. This is called an associative array because we can associate values with meaningful indices.
Example:
$weight['robert'] = 225;
$weight['gene'] = 180;
$weight['julie'] = 103;
Array Variables
Array variables useful to HTML
Array variable | comment |
---|---|
$_GET | |
$_POST | |
$_REQUEST | |
$_SERVER | |
$_FILES | Using HTML to upload files automatically creates this PHP array. Information about the uploaded files is in the $_FILES array. |
blah | blah |
Functions
Functions are good for your health.
function syntax | description |
---|---|
echo
|
outputs data to browser |
urlencode
|
takes any special characters in a string (like spaces) & converts them into special codes to appear in php query strings |
mysql_connect
|
Enables connection to MySQL database, returns a number that identifies the connection that has been established |
mysql_select_db
|
Selects database table that PHP will use. |
mysql_query
|
Enables PHP to send MySQL queries to MySQL db |
exit( );
|
Commands PHP to stop reading page. |
mysql_affected_rows
|
Returns number of rows affected for DELETE, INSERT, and UPDATE queries. MySQL tracks the number of rows that were affected. |
isset
|
returns a value of true if the identified variable has a value |
mysql_fetch_array
|
Accepts a result as a parameter and returns the next row in the result set as an array. No row returns a false. |
CURDATE()
|
returns current date |
split
|
takes a regular expression string of text and breaks it into an array based on char matches |
spliti
|
same as split except ignores case
|
blah | blah |
mysql_connect example
Example code:
$dbcnx = @mysql_connect ('db_hostname', 'db_user_name', 'db_user_password'); if (!$dbcnx) { echo ( '<p>Unable to connect to the ' . 'database server at this time.</p>' ); exit (); }
- The '@' symbol tells the function to fail silently which enables the coder to display your own message.
- The '!' symbol flips the $dbcnx value. A returned number for $dbcnx is true (your code successfully connected to MySQL db. !$dbcnx means a successful db connection results in false and the
if
statement would not execute. !$dbcnx means a failed db connection results in true and theif
statement would execute (print the custom error message).
- exit() function causes php to stop reading the page
mysql_select_db example
After your code successfully connects to the MySQL db you must tell PHP which db table to use.
Example basic code:
mysql_select_db ('db_name', $dbcnx );
- The function contains the db identifier $dbcnx. This parameter is optional but I will use it for completeness. The function will default to the last connection opened.
- Function returns true when it's successful and false if an error occurs.
Example basic code with error handling:
if (! @mysql_select_db('db_name', $dbcnx) ) { die ( '<p>Unable to locate the db_name ' . 'database at this time.</p>' ); }
die
function works likeecho
except the script exits after- Executing
die
is equivalent toecho
followed byexit
mysql_query example
Example code:
mysql_query ( query, connection_id ) ;
query
is a string that contains the SQL command we want to executeconnection_id
is optional parameter- Returns true (success) or false (failure) for most SQL queries. SELECT queries view data in db so it requires more than true or false.
- With SELECT query mysql_query returns a number that identifies a result set which contains a list of all the rows (entries) returned from the query.
- False is always returned if query fails.
More example code:
$result = @mysql_query ('SELECT column_name0, column_name1, ... FROM table_name'); if ( !$result ) { die ('<p>Error performing query: ' . mysql_error() . '</p>'); }
File Functions
Functions to manipulate files
function syntax | description |
---|---|
fopen
|
opens file for modification |
fclose
|
closes file |
fread
|
read data from file |
fwrite
|
writes data from a PHP variable into a file |
copy
|
copy a file |
Number Functions
function syntax | description |
---|---|
round() | Rounds a decimal to nearest integer. Specify the number of decimals to round by using format round($number, 3) |
number_format() | Converts number into commonly written version. Specify the number of decimals to round by using format number_format($number, 2) |
Regular Expressions
A regular expression is a string of text that contains special codes. Enables use of a few PHP functions to search and manipulate other strings of text.
ereg - searches text for string match & is case sensitive.
eregi - like ereg except is not case sensitive.
$text = 'Be nice and respectful.'; if (ereg('nice', $text)){ echo( '$text contains the string "nice".'); } else { echo( '$text does not contain the string "nice".'); }
ereg_replace - same as ereg plus it replaces every match of the regular expression with another string
eregi_replace - same except is not case sensitive.
$new_string = ereg_replace(regexp, replacewith, old_string);
special code | comment |
---|---|
A caret " ^ " | Marks start of text. |
A dollar sign " $ " | Marks end of text. |
Backslash " \ " | Prefix with a backslash to remove special meaning of a character. |
Square brackets " [ ] " | Matches any string with any character within brackets. |
Question mark " ? " | Trailing char is optional |
Addition sign " + " | one or more of the previous char |
Asterisk " * " | zero or more of the previous char |
Period " . " | Matches any string of one or more char with no line breaks. |
Parentheses " ( ) " | May be used to group string char together to apply ?, +, or * to them as a whole. |
Examples:
Example | Result |
---|---|
[6789] | Matches 6, 7, 8, 9, or any text with those characters. |
[6-9] | Same as [6789] |
^[0-9]$ | Matches any single number |
^[a-z]$ | Matches any single lower case letter |
[0-9a-zA-Z] | Matches any string with a letter or number |
^[a-zA-Z]+$ | Matches any string of one ore more letters. |
bana?na | Matches "banana" and "banna", but not "banaana". |
bana+na | Matches "banana" and "banaana", but not "banna". |
bana*na | Matches "banna", "banana", and "banaaana". |
ba(na)+na | Matches "banana" and "banananana", but not "bana" or "banaana". |
User Interaction & Forms
Formats, tips, and suggestions for user interaction & forms.
Variables can be separated in s query string by an ampersand (&). You may use the ampersand multiple times.
Web pages that can decide whether to display more than one pages is a multipurpose page.
Sample multipurpose page in the HTML body tags:
<?php if ( condition ) { ?> HTML content to display if condition is true <?php } else { ?> HTML content to display if condition is false <?php } ?>
Control Structures
if-else statement
if ( condition ) { executed if condition is true } else { executed if condition false
while loop
while ( conditions ) { statements execute if true, then repeat, until false }
for loop
for ( initialize; condition; update ) { statement(s) to execute repeatedly while condition is true }
Operators
operator | meaning | structure |
---|---|---|
and or && | compares two conditions both must be true | |
or or || | compares two and either must be true | |
! | negation operator or not operator, reverses a returned value from true to false or vice versa | |
== | equal-to operator | |
!= | not equal | |
< | less than | |
> | greater than | |
<= | less than or equal | |
>= | greater than or equal | |
.= | String concatenation operator - adds a new string on the end of another string | |
? | Ternary operator evaluates to exprTrue if expr1 evaluates to TRUE & exprFalse if FALSE. | expr1 ? exprTrue : exprFalse
|
? | PHP version 5.3+ Ternary operator returns exprTrue if exprTrue evaluates to TRUE, & exprFalse otherwise. | exprTrue ?: exprFalse
|
Arithmetic Operators
operator | meaning |
---|---|
+ | Addition |
- | Subtraction |
* | Multiplication |
/ | Division |
% | Modulus |
++ | Increment |
-- | Decrement |