Main PHP Tutorial8+

Basics

Introduction to PHP Language Getting Started Executing PHP Code Problem with Encodings Displaying PHP Errors Full Code to Run PHP Improved Code to Run Overview of Initial PHP Commands Comments in PHP Comments in Tutorial Variable Dumping Functions in PHP Variables Using Variables Changing Variable Values Mathematical Operations with Numbers Mathematical Operations with Variables Priority of Mathematical Operations Equal Priority Grouping Parentheses Grouping Nuances Fractions Negative Numbers Remainder of Division Exponentiation Exponentiation Priority Strings String Concatenation Spaces When Concatenating Strings String Length Problem with Cyrillic Tags Tag Attributes Boolean Values null Value Automatic Type Conversion Automatic Type Conversion to String Nuances of Conversion to String Conversion to Number Conversion to Fraction Converting Fraction to Integer Converting Number to String String Characters Digits in String Accessing Number Digits Nuances of the Assignment Operation Shortened Operations Incrementation Prefix and Postfix Type Practice on Finding Errors Practice on Operations Practice on Formulas

Arrays

Introduction to Arrays Viewing Array Contents Individual Array Element Associative Arrays Trick with Keys Element Order Array Length Changing Elements Overwriting Array Elements Incrementing Elements Filling Arrays Explicitly Specifying Keys Keys from Variables Practice on Finding Errors

Conditions

if-else Construct Greater Than and Less Than Operators Checking for Equality Checking for Inequality Comparing Variables Data Types and if-else Construct Numbers in Quotes Equality by Value and Type Inequality by Value and Type Nuances When Comparing Data Types Complex Conditions in if-else Logical AND Logical OR Priority of Comparison Operations Grouping Conditions Inverting Statements if-else Construct and Boolean Values Non-Strict Comparison of Boolean Values Shorthand if Nuance of Shortened Operations isset Command Warning Suppression Checking Array Elements empty Command Optionality of else Command Optionality of Curly Braces The Problem of Optional Braces if-else Combinations elseif Construct Nested if switch Construct Optionality of default match Construct Optionality of break Ternary Operator Null Coalescing Operator Null Coalescing Operator Chains Logical Operations Determining Part of an Hour Checking Length of Strings and Arrays Checking String Character Checking Remainder of Division Practice on Finding Errors if else Practice

Loops

Introduction foreach Loop foreach Loop with Keys while Loop for Loop Conditions in Loops Accumulating Sum of Numbers Accumulating Sum of Elements Forming Strings in a Loop Optionality of Curly Braces The Problem of Optional Braces break Statement continue Statement Working with Flags Nested Loops for Loop for Arrays Filling Arrays in a Loop Modifying Arrays in a Loop Code Writing Tips Practice on Finding Errors Practice on Loops

Multidimensionality

Introduction Three-Dimensional Array Associative Arrays Arbitrary Arrays Iterating Over Multidimensional Arrays Iterating Over Three-Dimensional Array Working with Keys Filling Multidimensional Arrays Filling with Numbers in Order Array of Associative Arrays Converting Multidimensional Arrays

Mathematical Functions

Powers Rounding Extremes Modules Operations with Arrays

String Functions

String Length Character Case Extracting Strings Checking Strings Searching Strings Splitting Strings Trimming String Ends Outputting String with Insertion Formatting Number Representation Reversing String Filling String Working with Tags Character Codes Counting Substrings String Parts

Array Functions

Searching Arrays End Elements Array Slicing Array Splicing Range in Array Filling Arrays Merging Arrays Keys-Values Reversing Replacement Removing Duplicates Counting Elements Splitting into Subarrays Sorting Multiple Operations

Random

Random Number Random Array Element Shuffling Arrays Shuffling Strings

Time

Working with Timestamp Formatting Parsing Dates in Free Format Checking Correctness Time Zone Modification String Comparison Comparing Date Without Year Date Falling Within an Interval Timestamp Comparison

Custom Functions

Introduction Function Parameters Multiple Parameters Variable Parameters Optional Parameters return Statement Sequential Function Calls Subtle Point of return Loop and return Using return in Loops Technique for Working with return Flags in Functions Logical Operators in Functions Function Tips Practice on Finding Errors Practice on Functions

Scope

Primitive References Array References References in foreach Internal Variables External Variables Variables with Same Name Global Variables Changing Parameters Reference Parameters

Recursion

Recursion Example with Parameter Sum of Array Elements Recursion and Multidimensional Arrays Sum of Multidimensional Array Manipulating Elements

Regular Expressions

Introduction Repetition Operators Grouping Parentheses Escaping Special Characters List of Special Characters Curly Braces Limiting Greediness Character Groups Character Classes Inverting Character Classes Cyrillic Specifics Special Characters Inside Character Classes Character Groups Inside Character Classes Exception Special Characters Inside Character Classes Caret Symbol Inside Character Classes Hyphen Nuances Inside Character Classes Start and End of String Word Boundary (End or Beginning) 'or' Command' Delimiters Escaping Delimiters Backslash Checking String Automated Regex Testing Checking Entire String Capturing Groups in Search Finding All Matches All Matches to Capturing Groups Changing Search Behavior Non-Capturing Parentheses Capturing Groups in Replacement Capturing Groups in Expression Named Capturing Groups Named Capturing Groups Inside Expression General Capturing Group Number Lookahead Lookbehind Replacement with Callback Modifiers Case-Insensitive Regex Flag Comments in Regex Working with Unicode in Regex Changing Regex Greediness Escaping Regular Characters in Regex Multiple Regex Modifiers Automatic Escaping of Special Characters Array Filtering Splitting String into Array

Forming Strings

Inserting Variables Inserting Array Elements Inserting Associative Array Elements Loop and Inserting Variables Inserting Array Elements in a Loop Inserting Multidimensional Array Elements in a Loop Generating Tags Generating Tags with Attributes Loop and Generating Tags Loop and Generating Tags from Arrays Loop and Generating Tags and Attributes Loop and Generating HTML Tables Generating HTML Table Using a Single Loop Generating HTML Table Using Two Nested Loops Inserting PHP Code into HTML Short echo Command Outputting Variable to HTML Outputting Array Elements to HTML Conditions and PHP Code Break else Block in PHP Code Break elseif Block in PHP Code Break Loops and PHP Code Break Array in Loop Within PHP Code Break

Forms

Introduction to Forms Form Submission Method Getting Form Data Getting Form Data via GET Method Getting Form Data via POST Method Processing Form in a Single File Hiding Form After Submission Saving Form Values Saving Form Default Value Shortened Code for Saving Default Values textarea Element Saving textarea Value After Submission Checkbox Nuances of Using Checkboxes Saving Value in Checkbox Radio Buttons Saving Value in Radio Buttons Selects value Attribute in Selects Saving Value in Selects GET-Queries GET-Requests Using Links Practice

Sessions

Introduction to Sessions Potential Problems Using Sessions on a Single Page Deleting Sessions Terminating Entire Session Sessions and Forms Storing Arrays in Sessions

Cookies

Introduction to Cookies Problem with Setting Cookies Instant Cookie Setting Page Refresh Counter Cookie Lifetime Deleting Cookies Instant Cookie Deletion

File System

Reading Files Writing Files Combination of Operations Relative Paths Absolute Paths Advantages of Absolute Path Absolute Paths to Script Renaming Files Moving Files Copying Files Deleting Files Determining File Sizes Checking File Existence Creating Folders Deleting Folders Renaming Folders Moving Folders Reading Folder Contents Distinguishing Folder from File Parsing Folder Contents Inserting Files Dividing Layout into Elements Storing Insertion in a Variable Including Files Single File Inclusion Storing Connection in a Variable

Databases

Introduction to Databases PhpMyAdmin Test Table users Preparatory Manipulations Sending Queries to the Database Finding Errors in Database Testing Functionality Problems with Encodings Full Test Code Getting Result Getting Result as an Array Forming an Array in a Loop Selecting Records Logical Operations Selection Fields Inserting Records Inserting Records When Columns Are Missing Updating Records Deleting Records Sorting Records Limiting Quantity Counting Quantity Getting Count Advanced Queries

Database Organization

Linking Tables Retrieving Data from Related Tables Chain of Related Tables Linking Through a Junction Table Related Relationships Multiple Children Double Link Practice

Database Practice

Test Table users Output Formatting Deleting Data Viewing Data Adding Data Editing Data

Working with HTTP

HTTP Tutorial HTTP Request Method HTTP Request Headers Array of HTTP Request Headers HTTP Response Headers Problem with HTTP Response Headers Problem with include Sending HTTP Response Start Line Sending HTTP Response Status

Redirects

Introduction to Redirects Instant Redirect GET Queries and Redirect Self-Redirect with Added Parameters Flash Messages Flash Messages Array Saving Forms Success Messages on Submission Redirect on Form Validation

Authentication

Introduction Authorization Sessions Exiting Session Registration Authorization Immediately Upon Registration Adding id to Session Hiding Password Checking Login for Availability Validation Hashing Adding Salt to Registration Adding Salt to Authorization password_hash Function Profile Account Changing Password Password Confirmation Account Deletion Permissions Registration with Role Separation Permissions and Database Normalization

Site Engine

Introduction Using htaccess File-Based Engine Title in File-Based Engine Titles in Array Titles in Content 404 Page in a File-Based Engine Database-Based Engine SEO-Friendly URLs in Engine Simple Routing Routing with Named Parameters Multiple Parameters in Route Practice
byenru