Я хочу использовать для своей выгоды каждое слово и объединить его в 1 слово, например:
разместите = Домой
о - нас = AboutUs
Вот функция, которую я использую в данный момент, regex может сделать это лучше или более эффективный?
public function formatClassName($name)
{
$name = str_replace('-', ' ', $name);
$name = ucwords($name);
$name = str_replace(' ', '', $name);
return $name;
}
Я не думаю, что регекс может писать слова с заглавной буквы, так что вам все равно придется иметь два отдельных регекса, и я думаю, что в таких простых случаях регулярные выражения - это перебор (думаю, охотничьи белочки с артиллерией). Этот код прост, понятен и понятен. НЕ ТРОГАЙТЕ ЕГО!
С регулярным выражением вам, вероятно, придется использовать что-то «сложное», например preg_replace_callback
(чтобы можно было применить strtoupper
или ucwords
function) , что сделало бы ваш код, по крайней мере, труднее для понимания - и, возможно, медленнее, но самое главное, чтобы ваш код был легким для понимания.
Учитывая, что ваше решение просто работает, оно простое и легкое , я бы, вероятно, оставил его, если бы был на вашем месте.
Мне нравится ваше отношение к DIY. Я также не смог найти никаких альтернатив Profiler, но вот статья , которая очень помогла мне одним из авторов книги Adobe Training from the Source . Я бы предложил провести точечные обзоры предложений по кодированию, изложенных здесь. HTH.
UPDATE: De MonsterDebugger также имеет функцию монитора памяти.
-121--3422740-sudo gem install mysql -v 2.7 -- -with-mysql-config =/usr/local/mysql/bin/mysql _ config также сделал трюк для меня при миграции на мой новый ноутбук Snow Leopard. Я использовал MacPorts не для установки mysql, а скорее двоичный, и мне не повезло с решениями флага арки или symlinks.
-121--1586742-Этот код работает:
$in = Array("home", "about-us");
foreach ($in as $a) {
## this is the line you're looking for
$out = preg_replace('/-?\b(.)/e', "strtoupper('$1')", $a);
echo "$a = $out<br/>";
}
Но я сомневаюсь, что он быстрее, и я согласен с другими комментаторами, что он не обязательно лучше. Уменьшение трех линий до одного волосатого regexp хорошо, только если вы гольф .