Мне интересно, какой самый быстрый способ заменить некоторые символы в строке ничем. Теперь у меня есть следующее:
$omschrijving = str_replace(")", "", str_replace("(", "", $line)));
Есть лучший способ сделать это? Это заменяет только "("
и ")"
, но что, если я хочу сделать то же самое с большим количеством символов. Все еще preg_
методы preg_
но на данный момент это все равно немного дует.
Ну вот:
str_replace(array('a', 'b', 'c', 'd'), '', $sString);
Из руководства :
Значение замены, которое заменяет найденные значения поиска. Массив может использоваться для обозначения нескольких замен.
str_replace
также может принимать массивы в качестве параметров.
$omschrijving = str_replace(array('(', ')'), '', $line);
без проблем
$omschrijving = str_replace(array('a', 'b', 'c', 'd', 'e', 'f', 'g'), "", $line);
str_replace
accpets array как 1-й и 2-й аргументы.
Вы также можете использовать strtr
, substr_replace
или preg_replace
чтобы заменить части строки чем-то другим.
Это сделает то, что вы хотите, используя preg_replace.
$string = preg_replace('/[()]/i', '', $string);
Это заменит все экземпляры '(' и ')' в строке, если вы хотите добавить что-то еще, просто добавьте его в квадратную скобку.
Например, чтобы добавить все дефисы, просто добавьте их в заменяющую строку.
$string = preg_replace('/[()-]/i', '', $string);
Или также заменить все символы подчеркивания.
$string = preg_replace('/[()_-]/i', '', $string);
Надеюсь это поможет.
Согласно моим показателям, вы должны использовать str_replace
при замене 1 или 2 символов одновременно. Всякий раз, когда у вас есть 3 или более символов для замены, preg_replace
более эффективен.
Я использовал этот контрольный протокол , изменяя его, чтобы он принимал разные символы вместо одного.
Для 3 символов, вот результаты:
Время для str_replace: 1.919958114624 секунды Время preg_replace: 1.4596478939056 секунд