>
String variables are used for values that contains characters.
In this chapter we are going to look at the most common functions and operators used to manipulate strings in PHP.
After we create a string we can manipulate it. A string can be used directly in a function or it can be stored in a variable.
Below, the PHP script assigns the text "Hello World" to a string variable called $txt:
<?php
$txt="Hello World";
echo $txt;
?>
The output of the code above will be:
Hello World
Now, lets try to use some different functions and operators to manipulate the string.
The Concatenation Operator
There is only one string operator in PHP.
The concatenation operator (.) is used to put two string values together.
To concatenate two string variables together, use the concatenation operator:
<?php
$txt1="Hello World!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
The output of the code above will be:
Hello World! What a nice day!
If we look at the code above you see that we used the concatenation operator two times. This is because we had to insert a third string (a space character), to separate the two strings.
The strlen() function
The strlen() function is used to return the length of a string.
Let's find the length of a string:
<?php
echo strlen("Hello world!");
?>
The output of the code above will be:
12
The length of a string is often used in loops or other functions, when it is important to know when the string ends. (i.e. in a loop, we would want to stop the loop after the last character in the string).
The strpos() function
The strpos() function is used to search for character within a string.
If a match is found, this function will return the position of the first match. If no match is found, it will return FALSE.
Let's see if we can find the string "world" in our string:
<?php
echo strpos("Hello world!","world");
?>
The output of the code above will be:
6
The position of the string "world" in our string is position 6. The reason that it is 6 (and not 7), is that the first position in the string is 0, and not 1.
Some more String Functions For Beginner's..
chr()
Definition and Usage
The chr() function returns a character from the specified ASCII value.
Syntax
chr(ascii)
Parameter
Description
ascii
Required. An ASCII value
Tips and Notes
Note: The x parameter can be specified in decimal, octal, or hex values. Octal values are defined by a leading 0, while hex values are defined by a leading 0x.
Example
<?php
echo chr(52)."<br />";
echo chr(052)."<br />";
echo chr(0x52)."<br />";
?>
The output of the code above will be:
4
*
R
echo()
Definition and Usage
The echo() function outputs one or more strings.
Syntax
echo(strings)
Parameter
Description
strings
Required. One or more strings to be sent to the output
Tips and Notes
Note: The echo() function is not actually a function, so you are not required to use parentheses with it. However, if you want to pass more than one parameter to echo(), using parentheses will generate a parse error.
Tip: The echo() function is slightly faster than print().
Tip: The echo() function has the following shortcut syntax. See example 5.
Example 1
<?php
$str = "Who's Kai Jim?";
echo $str;
echo "<br />";
echo $str."<br />I don't know!";
?>
The output of the code above will be:
Who's Kai Jim?
Who's Kai Jim?
I don't know!
Example 2
<?php
echo "This text
spans multiple
lines.";
?>
The output of the code above will be:
This text spans multiple lines.
Example 3
<?php
echo 'This ','string ','was ','made ','with multiple parameters';
?>
The output of the code above will be:
This string was made with multiple parameters
Example 4
Difference of single and double quotes. Single quotes will print the variable name, not the value:
<?php
$color = "red";
echo "Roses are $color";
echo "<br />";
echo 'Roses are $color';
?>
The output of the code above will be:
Roses are red
Roses are $color
Example 5
Shortcut syntax:
<html>
<body>
<?php
$color = "red";
?>
<p>Roses are <?=$color?></p>
</body>
</html>
fprintf()
Definition and Usage
The fprintf() function writes a formatted string to a specified output stream (example: file or database).
The arg1, arg2, ++ parameters will be inserted at percent (%) signs in the main string. This function works "step-by-step". At the first % sign, arg1 is inserted, at the second % sign, arg2 is inserted, etc.
The fprintf() function returns the length of the written string.
Syntax
fprintf(stream,format,arg1,arg2,arg++)
Parameter
Description
stream
Required. Specifies where to write/output the string
format
Required. Specifies the string and how to format the variables in it.
Possible format values:
- %% - Returns a percent sign
- %b - Binary number
- %c - The character according to the ASCII value
- %d - Signed decimal number
- %e - Scientific notation (e.g. 1.2e+2)
- %u - Unsigned decimal number
- %f - Floating-point number (local settings aware)
- %F - Floating-point number (not local settings aware)
- %o - Octal number
- %s - String
- %x - Hexadecimal number (lowercase letters)
- %X - Hexadecimal number (uppercase letters)
Additional format values. These are placed between the % and the letter (example %.2f):
- + (Forces both + and - in front of numbers. By default, only negative numbers are marked)
- ' (Specifies what to use as padding. Default is space. Must be used together with the width specifier. Example: %'x20s (this uses "x" as padding)
- - (Left-justifies the variable value)
- [0-9] (Specifies the minimum width held of to the variable value)
- .[0-9] (Specifies the number of decimal digits or maximum string length)
Note: If multiple additional format values are used, they must be in the same order as above.
arg1
Required. The argument to be inserted at the first %-sign in the format string
arg2
Optional. The argument to be inserted at the second %-sign in the format string
arg++
Optional. The argument to be inserted at the third, fourth, etc. %-sign in the format string
Tips and Notes
Note: If there are more % signs than arguments, you must use placeholders. A placeholder is inserted after the % sign, and consists of the argument- number and "\$". See example three.
Tip: Related functions: printf(), sprintf(), vfprintf(), vprintf(), and vsprintf().
Example 1
<?php
$str = "Hello";
$number = 123;
$file = fopen("test.txt","w");
echo fprintf($file,"%s world. Day number %u",$str,$number);
?>
The output of the code above will be:
27
The following text will be written to the file "test.txt":
Hello world. Day number 123
Example 2
<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"%f",$number);
?>
The following text will be written to the file "test.txt":
123.000000
Example 3
Use of placeholders:
<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"With 2 decimals: %1\$.2f
\nWith no decimals: %1\$u",$number);
?>
The following text will be written to the file "test.txt":
With 2 decimals: 123.00
With no decimals: 123
ltrim()
Definition and Usage
The ltrim() function will remove whitespaces or other predefined character from the left side of a string.
Syntax
ltrim(string,charlist)
Parameter
Description
string
Required. Specifies the string to check
charlist
Optional. Specifies which characters to remove from the string. If omitted, all of the following characters are removed:
- "" - NULL
- "\t" - tab
- "\n" - new line
- "\x0B" - vertical tab
- "\r" - carriage return
- " " - ordinary white space
Example 1
<html>
<body>
<?php
$str = " Hello World!";
echo "Without ltrim: " . $str;
echo "<br />";
echo "With ltrim: " . ltrim($str);
?>
<body>
<html>
The browser output of the code above will be:
Without ltrim: Hello World!
With ltrim: Hello World!
If you select "View source" in the browser window, you will see the following HTML:
<html>
<body>
Without ltrim: Hello World!<br />With ltrim: Hello World!
</body>
</html>
Example 2
<?php
$str = "\r\nHello World!";
echo "Without ltrim: " . $str;
echo "<br />";
echo "With ltrim: " . ltrim($str);
?>
The browser output of the code above will be:
Without ltrim: Hello World!
With ltrim: Hello World!
If you select "View source" in the browser window, you will see the following HTML:
<html>
<body>
Without ltrim:
Hello World!<br />With ltrim: Hello World!
</body>
</html>
printf()
Definition and Usage
The printf() function outputs a formatted string.
The arg1, arg2, ++ parameters will be inserted at percent (%) signs in the main string. This function works "step-by-step". At the first % sign, arg1 is inserted, at the second % sign, arg2 is inserted, etc.
Syntax
printf(format,arg1,arg2,arg++)
Parameter
Description
format
Required. Specifies the string and how to format the variables in it.
Possible format values:
- %% - Returns a percent sign
- %b - Binary number
- %c - The character according to the ASCII value
- %d - Signed decimal number
- %e - Scientific notation (e.g. 1.2e+2)
- %u - Unsigned decimal number
- %f - Floating-point number (local settings aware)
- %F - Floating-point number (not local settings aware)
- %o - Octal number
- %s - String
- %x - Hexadecimal number (lowercase letters)
- %X - Hexadecimal number (uppercase letters)
Additional format values. These are placed between the % and the letter (example %.2f):
- + (Forces both + and - in front of numbers. By default, only negative numbers are marked)
- ' (Specifies what to use as padding. Default is space. Must be used together with the width specifier. Example: %'x20s (this uses "x" as padding)
- - (Left-justifies the variable value)
- [0-9] (Specifies the minimum width held of to the variable value)
- .[0-9] (Specifies the number of decimal digits or maximum string length)
Note: If multiple additional format values are used, they must be in the same order as above.
arg1
Required. The argument to be inserted at the first %-sign in the format string
arg2
Optional. The argument to be inserted at the second %-sign in the format string
arg++
Optional. The argument to be inserted at the third, fourth, etc. %-sign in the format string
Tips and Notes
Note: If there are more % signs than arguments, you must use placeholders. A placeholder is inserted after the % sign, and consists of the argument- number and "\$". See example three.
Tip: Related functions: fprintf(), sprintf(), vfprintf(), vprintf(), and vsprintf().
Example 1
<?php
$str = "Hello";
$number = 123;
printf("%s world. Day number %u",$str,$number);
?>
The output of the code above will be:
Hello world. Day number 123
Example 2
<?php
$number = 123;
printf("%f",$number);
?>
The output of the code above will be:
123.000000
Example 3
Use of placeholders:
<?php
$number = 123;
printf("With 2 decimals: %1\$.2f
<br />With no decimals: %1\$u",$number);
?>
The output of the code above will be:
With 2 decimals: 123.00
With no decimals: 123
rtrim()
Definition and Usage
The rtrim() function will remove whitespaces or other predefined character from the right side of a string.
Syntax
rtrim(string,charlist)
Parameter
Description
string
Required. Specifies the string to check
charlist
Optional. Specifies which characters to remove from the string. If omitted, all of the following characters are removed:
- "" - NULL
- "\t" - tab
- "\n" - new line
- "\x0B" - vertical tab
- "\r" - carriage return
- " " - ordinary white space
Example 1
<html>
<body>
<?php
$str = "Hello World! ";
echo "Without rtrim: " . $str;
echo "<br />";
echo "With rtrim: " . rtrim($str);
?>
<body>
<html>
The browser output of the code above will be:
Without rtrim: Hello World!
With rtrim: Hello World!
If you select "View source" in the browser window, you will see the following HTML:
<html>
<body>
Without rtrim: Hello World! <br />With rtrim: Hello World!
</body>
</html>
Example 2
<?php
$str = "Hello World!\r\n";
echo "Without rtrim: " . $str;
echo "<br />";
echo "With rtrim: " . rtrim($str);
?>
The browser output of the code above will be:
Without rtrim: Hello World!
With rtrim: Hello World!
If you select "View source" in the browser window, you will see the following HTML:
<html>
<body>
Without rtrim: Hello World!
<br />With rtrim: Hello World!
</body>
</html>
str_split()
Definition and Usage
The str_split() function splits a string into an array.
Syntax
str_split(string,length)
Parameter
Description
string
Required. Specifies the string to split
length
Optional. Specifies the length of each array element. Default is 1
Tips and Notes
Note: If length is less than 1, the str_split() function will return FALSE.
Note: If length is larger than the length of string, the entire string will be returned as the only element of the array.
Example 1
<?php
print_r(str_split("Hello"));
?>
The output of the code above will be:
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
)
Example 2
<?php
print_r(str_split("Hello",3));
?>
The output of the code above will be:
Array
(
[0] => Hel
[1] => lo
)
str_word_count()
Definition and Usage
The str_word_count() function counts the number of words in a string.
Syntax
str_word_count(string,return,char)
Parameter
Description
string
Required. Specifies the string to check
return
Optional. Specifies the return value of the str_word_count() function.
Possible values:
- 0 - Default. Returns the number of words found
- 1 - Returns an array with the words from the string
- 2 - Returns an array where the key is the position of the word in the string, and value is the actual word
char
Optional. Specifies special characters to be considered as words.
Note: This parameter was added in PHP 5.1
Example 1
<?php
echo str_word_count("Hello world!");
?>
The output of the code above will be:
2
Example 2
<?php
print_r(str_word_count("Hello world!",1));
?>
The output of the code above will be:
Array
(
[0] => Hello
[1] => world
)
Example 3
<?php
print_r(str_word_count("Hello world!",2));
?>
The output of the code above will be:
Array
(
[0] => Hello
[6] => world
)
Example 4
str_word_count() without and with the char parameter:
<?php
print_r(str_word_count("Hello world & good morning!",1));
print_r(str_word_count("Hello world & good morning!",1,"&"));
?>
The output of the code above will be:
Array
(
[0] => Hello
[1] => world
[2] => good
[3] => morning
)
Array
(
[0] => Hello
[1] => world
[2] => &
[3] => good
[4] => morning
)
str_replace()
Definition and Usage
The str_replace() function replaces some characters with some other characters in a string.
This function works by the following rules:
- If the string to be searched is an array, it returns an array
- If the string to be searched is an array, find and replace is performed with every array element
- If both find and replace are arrays, and replace has fewer elements than find, an empty string will be used as replace
- If find is an array and replace is a string, the replace string will be used for every find value
Syntax
str_replace(find,replace,string,count)
Parameter
Description
find
Required. Specifies the value to find
replace
Required. Specifies the value to replace the value in find
string
Required. Specifies the string to be searched
count
Optional. A variable that counts the number of replacements
Tips and Notes
Note: This function is case-sensitive. Use str_ireplace() to perform a case-insensitive search.
Note: This function is binary-safe.
Example 1
<?php
echo str_replace("world","Peter","Hello world!");
?>
The output of the code above will be:
Hello Peter!
Example 2
In this example we will demonstrate str_replace() with an array and a count variable:
<?php
$arr = array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo "Replacements: $i";
?>
The output of the code above will be:
Array
(
[0] => blue
[1] => pink
[2] => green
[3] => yellow
)
Replacements: 1
Example 3
In this example we will demonstrate str_replace() with less elements in replace than find:
<?php
$find = array("Hello","world");
$replace = array("B");
$arr = array("Hello","world","!");
print_r(str_replace($find,$replace,$arr));
?>
The output of the code above will be:
Array
(
[0] => B
[1] =>
[2] => !
)
To be continued ………..