5. 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
6. 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”
7. 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.
8. 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
10. 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”;
11. String Length
The function strlen() 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 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
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
• 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.
22. 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
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 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_]
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 PHP snippet that checks whether the user has
entered a valid email or not ( the email should end with a
.com ).
33. More info about Regex
For more info about regular expressions, please visit :
http://www.php.net/manual/en/reference.pcre.pattern.syntax.p
34. 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