KEMBAR78
Class 5 - PHP Strings | PPT
PHP Strings
Outline
What are Strings ?
• A string is a series of characters.
• Can contain any arbitrary number of characters, the only
limit is the memory limit.
Ways To Write a String
Escaping characters
• Escaping is done using the backslash “” character :
$x = “He said “I’m a developer” ”;
$e = ‘He said ”I’m a developer” ’;
$d = “ $z ”; // $d has the value of the variable $z
$r = “ $z ”; // r has the value: $z
Special characters
• The most frequently used special characters we have are :
o n : linefeed
o t : the tab ( a number of spaces )
• We can only output these characters in double quoted
and heredoc strings.
• echo “Hin PHP”; // prints “Hi” then “PHP” in the next line
• echo ‘Hi n PHP’; // prints “Hi n PHP”
Curly syntax
• In double quoted and heredoc strings, you can have the
following :
$x[10] = “great”;
$x[‘name’] = “strings”;
$y = “ This is {$x[10]} ”; // This is great
$z = “ {$x[‘name’]} are flexible.”; // strings are flexible.
Accessing characters
• Strings can be accessed like arrays to get a specific
character :
$x = “String”;
echo $x[0]; // S
echo $x[1]; // t
echo $x[2]; // r
String Operations
• Concatenation operator “.”:
$x = “Hello ” . “ world”; // Hello world
• Concatenating assignment operator :
$x = “Hello ”;
$x .= “world” // Hello world
String Comparison
1. Can compare strings using “==“ operator :
if( $x == “Hi” )
echo “yes”;
1. Can use strcmp() built-in function :
if( strcmp( $x, “Hi”) == 0 )
echo “yes”;
1. Use strcasecmp() for case insensitive comparisons :
if( strcasecmp( “hi”, “Hi”) == 0 )
echo “yes”;
String Length
The function strlen() returns the length of the string:
Example:
echo strlen( “A string” ); // 8
Searching Strings
int strpos ( string $haystack , mixed $needle [, int $offset = 0
] )
Returns the numeric position of the first occurrence of needle
in the haystack string.
Example:
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme); // 0
Replacing Strings
mixed str_replace ( mixed $search , mixed $replace , mixed
$subject [, int &$count ] )
This function returns a string or an array with all occurrences
of search in subject replaced with the given replace value.
Example:
echo str_replace( “Hi”, “Hello”, “Hi strings.” ); // Hello
strings.
Extracting Strings
string substr ( string $string , int $start [, int $length ] )
Returns the portion of string specified by the start and length
parameters.
Example :
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
Splitting Strings
array explode ( string $delimiter , string $string [, int $limit ])
Returns an array of strings, each of which is a substring of
string formed by splitting it on boundaries formed by the
string delimiter.
Example :
$string = “this is a string";
$pieces = explode(" ", $string);
var_dump($pieces); // prints an array containing the parts
Joining Strings
string implode ( string $glue , array $pieces )
Join array elements with a glue string.
Example :
$array = array( “this”, “is”, “a”, “string” );
$string= implode(" ", $array);
echo $string; // this is a string
Exercise
Write a PHP function that reverses the string words, so If we
have a string like this :
this is the php strings lesson
The function should return this :
lesson strings php the is this
Exercise solution
<?php
function reverse_words($string){
$result = "";
$exploded = explode(" ", $string);
$reversed = array_reverse($exploded);
$result = implode(" ", $reversed);
return $result;
}
reverse_words( "this is the php strings lesson" );
?>
Formatting Strings
string number_format ( float $number , int $decimals = 0 ,
string $dec_point = '.' , string $thousands_sep = ',' )
This function formats a number according to the passed
arguments.
Example :
$number = 1234.5678;
$english_format_number = number_format($number,
2, '.', ''); // 1234.57
Formatting Strings
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
Returns a string produced according to the formatting string
format.
Example
printf(“My name is %s and my age is %d", “John”, 20 ); //
My name is John and my age is 20
For a complete list of details, visit :
http://php.net/manual/en/function.sprintf.php
Regular Expressions
• Regular expressions ( Regex ) provide flexible means for
matching strings of text.
• For example :
How can I check whether the user supplied a valid e-
mail or not ?
• There should be something that tells :
Is the string like some characters/digits then @ then
some characters/digits then .com ??? Here comes the
regex.
Meta Characters
Meta characters are characters the have some special meanings
in the regex pattern.
Character Description
 general escape character with several uses
^ assert start of subject (or line, in multiline mode)
$ assert end of subject (or line, in multiline mode)
. match any character except newline (by default)
[ start character class definition
] End character class definition
| start of alternative branch
( Start of sub pattern
) End of sub pattern
Meta Characters
Character Description
? 0 or 1
* 0 or more
+ 1 or more
{ Start min/max number of occurrences
} End min/max number of occurrences
^ negate the class, but only if it is the first character
- Character range
Character Classes
Character classes define the type of characters in the regex pattern.
Class Description
d Matches any numeric character - same as [0-9]
D Matches any non-numeric character - same as [^0-9]
s Matches any whitespace character - same as [ tnrfv]
S Matches any non-whitespace character - same as [^ tnrfv]
w Matches any alphanumeric character - same as [a-zA-Z0-9_]
W Matches any non-alphanumeric character - same as [^a-zA-Z0-9_]
Regex Examples
Regular
expression
(pattern)
Match (Subject ) Not match Comment
world Hello world Hello Jim
Match if the pattern is
present anywhere in the
subject
^world world class Hello world
Match if the pattern is
present at the beginning
of the subject
world$ Hello world world class
Match if the pattern is
present at the end of the
subject
/world/i This WoRLd Hello Jim
Makes a search in case
insensitive mode
^world$ world Hello world
The string contains only
the "world"
world*
worl, world,
worlddd
wor
There is 0 or more "d"
after "worl"
world+ world, worlddd worl
There is at least 1 "d"
after "worl"
Regex Examples
Regular
expression
(pattern)
Match (Subject ) Not match Comment
world? worl, world, worly wor, wory
There is 0 or 1 "d" after
"worl"
world{1} world worly
There is 1 "d" after
"worl"
world{1,} world, worlddd worly
There is 1 ore more "d"
after "worl"
world{2,3} worldd, worlddd world
There are 2 or 3 "d" after
"worl"
wo(rld)* wo, world, worldold wa
There is 0 or more "rld"
after "wo"
earth|world earth, world sun
The string contains the
"earth" or the "world"
Regex Examples
Regular
expression
(pattern)
Match (Subject ) Not match Comment
w.rld world, wwrld wrld
Any character in place of
the dot.
^.{5}$ world, earth sun
A string with exactly 5
characters
[abc] abc, bbaccc sun
There is an "a" or "b" or
"c" in the string
[a-z] world WORLD
There are any lowercase
letter in the string
[a-zA-Z]
world, WORLD,
Worl12
123
There are any lower- or
uppercase letter in the
string
[^wW] earth w, W
The actual character can
not be a "w" or "W"
Regex Functions
int preg_match ( string $pattern , string $subject [, array
&$matches [, int $flags = 0 [, int $offset = 0 ]]] )
Searches subject for a match to the regular expression given
in pattern. It will stop by the first occurrence of the pattern.
Example:
$x = preg_match( “/php*/”, “phpppp”, $result ); // returns 1
var_dump($result); // array(1) { [0]=> string(6) "phpppp" }
Regex Functions
int preg_match_all ( string $pattern , string $subject , array
&$matches [, int $flags = PREG_PATTERN_ORDER [, int
$offset = 0 ]] )
Searches subject for a match to the regular expression given
in pattern. It gets all the occurrences of the pattern in the
string.
Example:
$x = preg_match_all( “/php/”, “phpp phpzz”, $result ); // returns 1
var_dump($result); // array(1) { [0]=> array(2) { [0]=> string(3)
"php" [1]=> string(3) "php" } }
Regex Functions
mixed preg_replace ( mixed $pattern , mixed
$replacement , mixed $subject [, int $limit = -1 [, int
&$count ]] )
Searches subject for matches to pattern and replaces them
with replacement.
Example:
$x = preg_replace( “/php*/”, “hi” ,“phpp phppz”);
echo $x ; // hi hiz
Exercise
Write a PHP snippet that checks whether the user has
entered a valid email or not ( the email should end with a
.com ).
Exercise Solution
<?php
$email = "myemail1@example.com";
if(preg_match("/[w]+@[w]+.com/", $email) == 1 )
echo "Valid email";
else
echo "Invalid email";
?>
More info about Regex
For more info about regular expressions, please visit :
http://www.php.net/manual/en/reference.pcre.pattern.syntax.p
Assignment
1- Write a function that calculates the number of the words a string has.
2- Write a PHP script that matches the following phone numbers :
718 498 1043
718 198-1043
What's Next?
• Web Programming.
Questions?

Class 5 - PHP Strings

  • 1.
  • 2.
  • 3.
    What are Strings? • A string is a series of characters. • Can contain any arbitrary number of characters, the only limit is the memory limit.
  • 4.
    Ways To Writea String
  • 5.
    Escaping characters • Escapingis done using the backslash “” character : $x = “He said “I’m a developer” ”; $e = ‘He said ”I’m a developer” ’; $d = “ $z ”; // $d has the value of the variable $z $r = “ $z ”; // r has the value: $z
  • 6.
    Special characters • Themost frequently used special characters we have are : o n : linefeed o t : the tab ( a number of spaces ) • We can only output these characters in double quoted and heredoc strings. • echo “Hin PHP”; // prints “Hi” then “PHP” in the next line • echo ‘Hi n PHP’; // prints “Hi n PHP”
  • 7.
    Curly syntax • Indouble quoted and heredoc strings, you can have the following : $x[10] = “great”; $x[‘name’] = “strings”; $y = “ This is {$x[10]} ”; // This is great $z = “ {$x[‘name’]} are flexible.”; // strings are flexible.
  • 8.
    Accessing characters • Stringscan be accessed like arrays to get a specific character : $x = “String”; echo $x[0]; // S echo $x[1]; // t echo $x[2]; // r
  • 9.
    String Operations • Concatenationoperator “.”: $x = “Hello ” . “ world”; // Hello world • Concatenating assignment operator : $x = “Hello ”; $x .= “world” // Hello world
  • 10.
    String Comparison 1. Cancompare strings using “==“ operator : if( $x == “Hi” ) echo “yes”; 1. Can use strcmp() built-in function : if( strcmp( $x, “Hi”) == 0 ) echo “yes”; 1. Use strcasecmp() for case insensitive comparisons : if( strcasecmp( “hi”, “Hi”) == 0 ) echo “yes”;
  • 11.
    String Length The functionstrlen() returns the length of the string: Example: echo strlen( “A string” ); // 8
  • 12.
    Searching Strings int strpos( string $haystack , mixed $needle [, int $offset = 0 ] ) Returns the numeric position of the first occurrence of needle in the haystack string. Example: $mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); // 0
  • 13.
    Replacing Strings mixed str_replace( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) This function returns a string or an array with all occurrences of search in subject replaced with the given replace value. Example: echo str_replace( “Hi”, “Hello”, “Hi strings.” ); // Hello strings.
  • 14.
    Extracting Strings string substr( string $string , int $start [, int $length ] ) Returns the portion of string specified by the start and length parameters. Example : echo substr('abcdef', 1); // bcdef echo substr('abcdef', 1, 3); // bcd echo substr('abcdef', 0, 4); // abcd echo substr('abcdef', 0, 8); // abcdef echo substr('abcdef', -1, 1); // f
  • 15.
    Splitting Strings array explode( string $delimiter , string $string [, int $limit ]) Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string delimiter. Example : $string = “this is a string"; $pieces = explode(" ", $string); var_dump($pieces); // prints an array containing the parts
  • 16.
    Joining Strings string implode( string $glue , array $pieces ) Join array elements with a glue string. Example : $array = array( “this”, “is”, “a”, “string” ); $string= implode(" ", $array); echo $string; // this is a string
  • 17.
    Exercise Write a PHPfunction that reverses the string words, so If we have a string like this : this is the php strings lesson The function should return this : lesson strings php the is this
  • 18.
    Exercise solution <?php function reverse_words($string){ $result= ""; $exploded = explode(" ", $string); $reversed = array_reverse($exploded); $result = implode(" ", $reversed); return $result; } reverse_words( "this is the php strings lesson" ); ?>
  • 19.
    Formatting Strings string number_format( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' ) This function formats a number according to the passed arguments. Example : $number = 1234.5678; $english_format_number = number_format($number, 2, '.', ''); // 1234.57
  • 20.
    Formatting Strings string sprintf( string $format [, mixed $args [, mixed $... ]] ) Returns a string produced according to the formatting string format. Example printf(“My name is %s and my age is %d", “John”, 20 ); // My name is John and my age is 20 For a complete list of details, visit : http://php.net/manual/en/function.sprintf.php
  • 21.
    Regular Expressions • Regularexpressions ( Regex ) provide flexible means for matching strings of text. • For example : How can I check whether the user supplied a valid e- mail or not ? • There should be something that tells : Is the string like some characters/digits then @ then some characters/digits then .com ??? Here comes the regex.
  • 22.
    Meta Characters Meta charactersare characters the have some special meanings in the regex pattern. Character Description general escape character with several uses ^ assert start of subject (or line, in multiline mode) $ assert end of subject (or line, in multiline mode) . match any character except newline (by default) [ start character class definition ] End character class definition | start of alternative branch ( Start of sub pattern ) End of sub pattern
  • 23.
    Meta Characters Character Description ?0 or 1 * 0 or more + 1 or more { Start min/max number of occurrences } End min/max number of occurrences ^ negate the class, but only if it is the first character - Character range
  • 24.
    Character Classes Character classesdefine the type of characters in the regex pattern. Class Description d Matches any numeric character - same as [0-9] D Matches any non-numeric character - same as [^0-9] s Matches any whitespace character - same as [ tnrfv] S Matches any non-whitespace character - same as [^ tnrfv] w Matches any alphanumeric character - same as [a-zA-Z0-9_] W Matches any non-alphanumeric character - same as [^a-zA-Z0-9_]
  • 25.
    Regex Examples Regular expression (pattern) Match (Subject) Not match Comment world Hello world Hello Jim Match if the pattern is present anywhere in the subject ^world world class Hello world Match if the pattern is present at the beginning of the subject world$ Hello world world class Match if the pattern is present at the end of the subject /world/i This WoRLd Hello Jim Makes a search in case insensitive mode ^world$ world Hello world The string contains only the "world" world* worl, world, worlddd wor There is 0 or more "d" after "worl" world+ world, worlddd worl There is at least 1 "d" after "worl"
  • 26.
    Regex Examples Regular expression (pattern) Match (Subject) Not match Comment world? worl, world, worly wor, wory There is 0 or 1 "d" after "worl" world{1} world worly There is 1 "d" after "worl" world{1,} world, worlddd worly There is 1 ore more "d" after "worl" world{2,3} worldd, worlddd world There are 2 or 3 "d" after "worl" wo(rld)* wo, world, worldold wa There is 0 or more "rld" after "wo" earth|world earth, world sun The string contains the "earth" or the "world"
  • 27.
    Regex Examples Regular expression (pattern) Match (Subject) Not match Comment w.rld world, wwrld wrld Any character in place of the dot. ^.{5}$ world, earth sun A string with exactly 5 characters [abc] abc, bbaccc sun There is an "a" or "b" or "c" in the string [a-z] world WORLD There are any lowercase letter in the string [a-zA-Z] world, WORLD, Worl12 123 There are any lower- or uppercase letter in the string [^wW] earth w, W The actual character can not be a "w" or "W"
  • 28.
    Regex Functions int preg_match( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) Searches subject for a match to the regular expression given in pattern. It will stop by the first occurrence of the pattern. Example: $x = preg_match( “/php*/”, “phpppp”, $result ); // returns 1 var_dump($result); // array(1) { [0]=> string(6) "phpppp" }
  • 29.
    Regex Functions int preg_match_all( string $pattern , string $subject , array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]] ) Searches subject for a match to the regular expression given in pattern. It gets all the occurrences of the pattern in the string. Example: $x = preg_match_all( “/php/”, “phpp phpzz”, $result ); // returns 1 var_dump($result); // array(1) { [0]=> array(2) { [0]=> string(3) "php" [1]=> string(3) "php" } }
  • 30.
    Regex Functions mixed preg_replace( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) Searches subject for matches to pattern and replaces them with replacement. Example: $x = preg_replace( “/php*/”, “hi” ,“phpp phppz”); echo $x ; // hi hiz
  • 31.
    Exercise Write a PHPsnippet that checks whether the user has entered a valid email or not ( the email should end with a .com ).
  • 32.
    Exercise Solution <?php $email ="myemail1@example.com"; if(preg_match("/[w]+@[w]+.com/", $email) == 1 ) echo "Valid email"; else echo "Invalid email"; ?>
  • 33.
    More info aboutRegex For more info about regular expressions, please visit : http://www.php.net/manual/en/reference.pcre.pattern.syntax.p
  • 34.
    Assignment 1- Write afunction that calculates the number of the words a string has. 2- Write a PHP script that matches the following phone numbers : 718 498 1043 718 198-1043
  • 35.
  • 36.