There are many ways to use str_replace function.
Let’s take a look at the function first.
preg_replace
The preg_replace() function performs a regular expression searches a string for matches to a pattern and replaces them with replacement.
Syntax:
preg_replace(mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
Simple Syntax:
preg_replace(the value to find, the value to replace, string to be searched, the maximum possible replacements for each pattern, the number of replacements)
Where first 3 parameters are required.
str_replace
The str_replace() function replaces some characters with some other characters in a string.
Syntax:
str_replace(mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed
Simple Syntax:
str_replace(the value to find,the value to replace,string to be searched,the number of replacements)
Where first 3 parameters are required.
strtolower
It makes the string lowercase.
Remove all special characters from a string
$cleanString = strtolower($string);
$cleanString = preg_replace('/[^a-z0-9 -]+/', '', $cleanString);
$cleanString = str_replace(' ', '-', $cleanString);
OR make a function so that you can use it number of times
function cleanInputs($string) {
$string = str_replace(' ', '-', $string);
return preg_replace('/[^A-Za-z0-9-]/', '', $string);
}
It’s up to you if you want to remove the hyphens first or after removing the special characters.
NOTE: You can replace it with lowercase or any other letter you like. I’ve used hyphens just for example.
There is a problem though. The solution above leaves multiple hyphens in the solution.
Replace multiple hyphens with one
$finalOutput = preg_replace('/-+/', '-', $string);
How to remove dash form any string?
$stringWithoutDash = str_replace("-", " ", $string);
You can remove any special characters you like. One at a time if your code requires that.
$string = str_replace("-", " ", $string);
$string = str_replace("?", " ", $string);
$string = str_replace("!", " ", $string);
Just like above example, it won’t replace all the special characters but only 3.
Sources
functions preg_replace special characters string