Самый быстрый способ заменить серию символов в строке - PullRequest
1 голос
/ 17 ноября 2011

Мне интересно, какой самый быстрый способ заменить определенные символы в строке ничем. Теперь у меня есть следующее:

$omschrijving = str_replace(")", "", str_replace("(", "", $line)));

Есть ли лучший способ сделать это? Это только замена "(" и ")", но что делать, если я хочу сделать то же самое с большим количеством символов. Все еще изучаю preg_ методы, но в настоящий момент это все еще немного ошеломляет.

Ответы [ 5 ]

3 голосов
/ 17 ноября 2011

Вот, пожалуйста:

str_replace(array('a', 'b', 'c', 'd'), '', $sString);

С инструкция :

Значение замены, которое заменяет найденные значения поиска. массив может использоваться для обозначения множественных замен.

2 голосов
/ 17 ноября 2011

str_replace также может принимать массивы в качестве параметров.

$omschrijving = str_replace(array('(', ')'), '', $line);
1 голос
/ 12 мая 2014

Согласно моим тестам, вы должны использовать str_replace при замене 1 или 2 символов одновременно.Когда у вас есть 3 или более символов для замены, preg_replace более эффективен.

Я использовал этот тестовый протокол , изменив его так, чтобы он принимал различные символы вместо одного.

Для 3 символов, вот результаты:

Время для str_replace: 1.919958114624 секунд Время для preg_replace: 1.4596478939056 секунд

1 голос
/ 17 ноября 2011

Это будет делать то, что вы хотите, используя preg_replace.

$string = preg_replace('/[()]/i', '', $string);

Это заменит все вхождения '(' и ')' в строке, если вы хотите добавить что-то еще, просто добавьте это в квадратные скобки.

Например, чтобы добавить заменить все черточки, просто добавьте его в строку замены.

$string = preg_replace('/[()-]/i', '', $string);

Или также заменить все подчеркивания.

$string = preg_replace('/[()_-]/i', '', $string);

Надеюсь, это поможет.

1 голос
/ 17 ноября 2011

без проблем

$omschrijving = str_replace(array('a', 'b', 'c', 'd', 'e', 'f', 'g'), "", $line);

str_replace принимает массив в качестве 1-го и 2-го аргумента.

Вы также можете использовать strtr, substr_replace или preg_replace для замены частей строки чем-то другим.

...