Pamiętam, że robiłem to wcześniej, ale nie mogę znaleźć kodu. Używam str_replace, aby zastąpić jeden znak w ten sposób: str_replace(':', ' ', $string);
ale chcę zamienić wszystkie następujące znaki \/:*?"<>|
, bez robienia str_replace dla każdego.
php
string
str-replace
w tym samym wieku
źródło
źródło
Odpowiedzi:
str_replace()
może wziąć tablicę, więc możesz zrobić:Alternatywnie możesz użyć
preg_replace()
:źródło
str_replace()
nadpreg_replace()
(lub odwrotnie) w przypadku PO?'~[\\+><-]~'
(zwróć uwagę, gdzie-
jest). Myślnik (-
) jest metaznakiem wyrażenia regularnego, więc musi uciekać lub strategicznie umieścić go w klasie postaci (wszystko w środku[]
). Zobacz tę odpowiedź: stackoverflow.com/a/7604888/396458Lubię to:
Lub, we współczesnym PHP (od 5,4 wzwyż), nieco mniej rozwlekły:
źródło
Na przykład , jeśli chcesz zamienić wyszukiwanie1 na zamień1 i wyszukiwanie2 na zamień2, zadziała następujący kod:
źródło
źródło
Jeśli zastępujesz tylko pojedyncze znaki, powinieneś użyć
strtr()
źródło
Możesz użyć preg_replace () . Poniższy przykład można uruchomić za pomocą php wiersza poleceń:
Wynik:
źródło
Miałem sytuację, w której musiałem zamienić tagi HTML na dwa różne wyniki zamiany.
wynik
„Instalator instalacji tryskaczowych i przeciwpożarowych”, „Instalator parowy”, „Układarka do lastryko, płytek i marmuru”,
źródło
Chyba się tym opiekujesz:
źródło
W moim przypadku sparametryzowałem niektóre pola w dokumencie HTML, a po załadowaniu tych pól dopasowuję je i zastępuję za pomocą metody str_replace.
źródło