Каков наиболее эффективный способ изменить строку в php? - PullRequest
0 голосов
/ 15 марта 2012

Мне нужно изменить строку в таком формате, как
abcdefghijklmnopqrstuvwxyz до ab/cd/ef/abcdefghijklmnopqrstuvwxyz.

Какой самый эффективный способ сделать это в php?

Примеры:

123456789 станет 12/34/56/123456789

gwn58yh045bgw0r8 станет gw/n5/8y/gwn58yh045bgw0r8

Ответы [ 2 ]

4 голосов
/ 15 марта 2012

Вы хотите preg_replace. Этот код должен сделать это:

$input = 'abcdefghijklmnopqrstuvwxyz';
$output = preg_replace('/^(..)(..)(..).*$/', "$1/$2/$3/$input", $input);

Это берет первые 3 группы из двух символов (..) и добавляет их ($1, $2, $3) к исходной строке с косой чертой.

Демо: http://codepad.org/WueutXZA

3 голосов
/ 15 марта 2012

Обновление

Примечание: Поскольку Джефф Б избил меня до решения preg_replace, его решение является наиболее эффективным. Но просто чтобы предоставить другую (совершенно нечитаемую) альтернативу ...

$inStr = 'abcdefghijklmnopqrstuvwxyz';

$temp = substr($inStr,0, 6);
$outStr = substr_replace(
            substr_replace(
                substr_replace($temp, '/', 2, 0)
            , '/', 5, 0)
          , '/', 8, 0);

echo($outStr . $inStr);
...