How to remove all spaces from a String in PHP
Given that you have a string of text in PHP and the task at hand is to remove spaces from it, this article explains through simple steps, the different ways in which you can achieve it. In it, I will demonstrate with aid of multiple examples.
The scope of this article revolves around:
- Removing spaces at the ends of the string.
- Removing all the regular spaces from a string.
- Removing all the white spaces from a string.
But before we explore each of the above, it is important to note that not all spaces are the same. There are different types of spaces that can be present in strings, most of which are written as escape sequences. Let’s have a look at them in the table below.
Removing spaces at the ends of the string
Spaces at the beginning or at the end of strings are in most cases added by mistake without even noticing and may result in errors while dealing with strings in your program.
For instance, a typing error may result in two strings, «hello world» and » hello world». It may seem nothing of a big deal but these strings are two totally different things. If you were to do a comparison between the two using either the equal operator == or the identical operator === , you would notice that they are treated as two totally different strings due to the leading space for the second string.
The strings are different
These spaces before and after the string are prone to originate with user inputs in forms. For instance, in registration or login forms, users may add spaces before or after their names, email, phone, etc, even without noticing which may result in errors.
It is therefore advisable to trim these inputs before saving them in the database or using them for comparison.
To remove these spaces, we can use the PHP trim() , ltrim() or rtrim() functions.
The trim() function removes whitespace and any other predefined characters from both ends of a string.
Syntax
Parameters
Example
"; echo "Length after trim: $length2";
Initial string length: 14
Length after trim: 12
Initially, we had the string with a space at the beginning, and another at the end. We then trimmed it and removed the two spaces. Since if we were to print/echo the string before and after trimming on the screen, you wouldn’t easily notice the difference, I have used the string length as the way of confirmation.
Initially, our string had a length of 14 characters. After removing the two spaces and checking the length again, you will notice that it has been reduced 2 characters after trimming.
Example 2
"; echo "String2 length: $length2";
String1 length: 14
String2 length: 12
In this example we have specified in the second parameter that we want to remove the » » and «\t» characters.
The ltrim() and rtrim() functions are the same to the trim() function, only that they specify one specific side in which the trim should happen instead of both ends.
ltrim() — Removes whitespace or other predefined characters from the left side of a string.
rtrim() — Removes whitespace or other predefined characters from the right side of a string.
Removing all the regular spaces.
To remove all the spaces in between words or characters in a string to remain with a compact block of text, use the str_replace() function.
The str_replace() function is an inbuilt PHP function used to replace all the occurrences of some characters with other characters in a string.
Syntax
Parameters
All we have to do is use the function to replace all the instances of regular space ( » » ) with an empty string «» .
Example
This method is best for regular spaces. These are spaces that appear regularly in between words in a string (ie. » «), inserted by pressing the keyboard space bar.
To remove all whitespaces, it’s advisable to use the preg_replace() function as covered below.
Removing all the whitespace characters.
Regular space is different from whitespace. While regular space is just the ordinary space » » , whitespace comprise of all types of spaces including regular space, tabs, newlines, etc, as listed in the space characters’ table.
The str_replace() function is the best for removal for just regular spaces. On the other hand, preg_replace() function is the best for removing all whitespace in a string.
The preg_replace() function replaces all matches of a pattern or list of patterns within a string with substrings.
Syntax
preg_replace(pattern, replacement, input, limit, count)
Parameters
The pattern comprises of the word or character to be replaced enclosed within an opening and closing forward slash /word, phrase, or character/ .
In our case, we use \s character as the value in the pattern parameter and an empty string «» as the replacement.
But why «\s» and not anything else, you may wonder. \s is the escape sequence for space and whitespace characters. It matches any whitespace character and is equivalent to [ \t\n\r\f\v] or [[:space:]].
Therefore, our pattern becomes «/\s/«.
Example
A string with different types of whitespace.
My name is John.
I love programming.
I like programming in PHP.
In the above example, \t represents the tab character, whereas \n represents the newline character.
Example 2
Removing all the white space with preg_replace() function.