I remember doing this before, but can't find the code. I use str_replace to replace one character like this: str_replace[':', ' ', $string];
but I want to replace all the following characters \/:*?"|
, without doing a str_replace for each.
asked Sep 30, 2011 at 2:51
2
Like this:
str_replace[array[':', '\\', '/', '*'], ' ', $string];
Or, in modern PHP [anything from 5.4 onwards], the slighty less wordy:
str_replace[[':', '\\', '/', '*'], ' ', $string];
Codemonkey
4,2124 gold badges38 silver badges72 bronze badges
answered Sep 30, 2011 at 2:53
DogbertDogbert
205k40 gold badges384 silver badges392 bronze badges
0
str_replace[]
can take an
array, so you could do:
$new_str = str_replace[str_split['\\/:*?"|'], ' ', $string];
Alternatively you could use preg_replace[]
:
$new_str = preg_replace['~[\\\\/:*?"|]~', ' ', $string];
answered Sep 30, 2011 at 2:54
NullUserExceptionNullUserException
82.1k27 gold badges205 silver badges230 bronze badges
6
For example, if you want to replace search2 with replace1 and search2 with replace2 then following code will work:
print str_replace[
array["search2","search2"],
array["replace1", "replace2"],
"search2 search2"
];
// Output: replace1 replace2
answered Feb 10, 2015 at 20:36
SumoanandSumoanand
8,6651 gold badge47 silver badges46 bronze badges
0
str_replace[
array["search","items"],
array["replace", "items"],
$string
];
answered Sep 30, 2011 at 2:54
MartyMarty
38.6k19 gold badges91 silver badges162 bronze badges
If you're only replacing single characters, you should use strtr[]
answered Sep 30, 2011 at 3:05
Explosion PillsExplosion Pills
185k49 gold badges318 silver badges394 bronze badges
1
You could use preg_replace[]. The following example can be run using command line php:
Output:
$s2: "the string "
answered Sep 30, 2011 at 2:54
GreenMattGreenMatt
17.8k7 gold badges50 silver badges76 bronze badges
1
I had a situation whereby I had to replace the HTML tags with two different replacement results.
$trades = "Sprinkler and Fire Protection Installer
Steamfitter
Terrazzo, Tile and Marble Setter ";
$s1 = str_replace['', '"', $trades];
$s2 = str_replace[' ', '",', $s1];
echo $s2;
result
"Sprinkler and Fire Protection Installer", "Steamfitter ", "Terrazzo, Tile and Marble Setter",
answered Feb 15, 2017 at 18:19
I guess you are looking after this:
// example
private const TEMPLATE = __DIR__.'/Resources/{type}_{language}.json';
...
public function templateFor[string $type, string $language]: string
{
return \str_replace[['{type}', '{language}'], [$type, $language], self::TEMPLATE];
}
answered Oct 2, 2018 at 11:20
In my use case, I parameterized some fields in an HTML document, and once I load these fields I match and replace them using the str_replace method.
answered Apr 5, 2020 at 19:55
dataviewsdataviews
1,8804 gold badges17 silver badges54 bronze badges