Замена одного символа в строке несколькими

  • Автор темы Росс
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.

Росс

Guest
Замена одного символа в строке несколькими

Вот бъюсь наж этой загаткой современности уже 4 часа.
Перепробовал ereg_replace, str_replace, preg_replace... ничего не получается...

$opentext{$i}=ereg_replace($alphabet{$a}, $code[$a+1][$x], $opentext{$i});

Находим в строке opentext нужный символ ( в данном случае $alphabet{$a}=$opentxt{$i}, заменяем один этот символ значением из массива.
Но так как у меня это значение получает $opentext{$i}, то у меня заменяется есстественно только 1 символ и получается что если цифру 3 из строки заменять цифрой 12 из массива, то после использования функции 3 заменится на 1, а не на 12...
Что делать? Трабл в том, что одинаковые символы из строки мне нужно заменять каждый раз на разные другие символы, а не на один. поэтому функции поиска и замены всех вхождений - отпадают..


((((памагите пажалста
 

SelenIT

IT-лунатик :)
Имхо, нужно собирать искомую строку заново:
PHP:
$new_string .= str_replace($alphabet{$a}, $code[$a+1][$x], $opentext{$i});
 

Gas

может по одной?
наверное тебе нужен [m]preg_replace_callback[/m]

p.s. не лишним был-бы маленький пример исходных данных и что должно получиться в результате.
 

Росс

Guest
грубо говоря:
Символ a заменяется следюущими цифрами: 12,14,32 (по очереди)
Символ b - 34,54,1
То есть при входе текста baba
должно получиться
34125414,
но в моем варианте получается
3151
 

Фанат

oncle terrible
Команда форума
Росс
если ты пишешь кодировщик, то писал бы его как получается - по одной перебирая буквы.
Дешево и сердито.
Ну учишься ты писать программы - и учись. сам., своими средствами.
 

IBSN

Новичок
что-то типа того что хочешь ты :)

PHP:
        function encode($str)
        {
                $bd_sym = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789 #@-&?%+,';
                $bd_chr = '65666768697071727374757677787980818283848586878889904648495051525354555657323564453863374344';

                $code = '';
                for ($i=0; $i<strlen($str); $i++)
                {

                        $code_num[$i] = strpos($bd_sym, strtoupper($str{$i}));
                }

                for ($i=0; $i<count($code_num); $i++)
                {
                        $code .= $bd_chr{$code_num[$i]*2}.$bd_chr{($code_num[$i]*2)+1};
                }
                return $code;
        }
 

Росс

Guest
Иу фанат - я че-та не догоняю что именно тебе не нравицца. Я и кодировшщик пишу и программить учусь. И делаю это так как мне представлется проще всего. Вот загвоздка появилась я совета спрашиваю, и не нуждаюсь в том чтобы мне указывали как жизнь жить.

-~{}~ 02.11.04 11:41:

ту ИБСН спасибо! Ща буду разбираца!
 

Фанат

oncle terrible
Команда форума
Тема закрыта. Учитесь пользоваться поиском.

Прежде чем задавать вопрос - используйте поиск по форуму и FAQ:
На нахождение готового ответа на свой вопрос Вы потратите меньше своего и чужого времени, чем на создание новой темы.
http://faq.phpclub.ru
http://detail.phpclub.ru/
Поиск по форуму

-~{}~ 02.11.04 11:42:

клиент неоперабален.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху