Помогите с заменой строки - PullRequest
2 голосов
/ 03 мая 2011

Я пытаюсь создать переменную, которая выполняет несколько различных правил замены ... например, если имя переменной возвращается с пробелом, я заменяю его дефисом.Если он содержит амперсанд, он удаляет его из строки.Прямо сейчас у меня есть это:

$reg_ex_space = "[[:space:]]";
$replace_space_with = "-";
$reg_ex_amper = "[&]";
$replace_amper_with = "";
$manLink1 = ereg_replace ($reg_ex_amper, $replace_amper_with, $manName);
$manLink2 = ereg_replace ($reg_ex_space, $replace_space_with, $manLink1);

и когда я повторяю manLink2 от чего-то с амперсандом, скажем, Том и Джерри, он вернется Том-Джерри.

Может кто-нибудь объяснить, пожалуйста,более эффективный / рабочий способ написать это?

1 Ответ

1 голос
/ 03 мая 2011

Это заменит & пустой строкой (удаляя ее) и преобразует пробелы в -.

Затем он будет сгущать несколько - вместе до одного.

$str = str_replace(array('&', ' '), array('', '-'), $str);

$str = preg_replace('/-{2,}/', '-', $str);

CodePad .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...