За последние 24 часа нас посетили 17904 программиста и 1650 роботов. Сейчас ищут 876 программистов ...

замена букв в элементах массива, елементы - строки

Тема в разделе "PHP для новичков", создана пользователем Rumato, 25 янв 2011.

  1. Rumato

    Rumato Активный пользователь

    С нами с:
    26 дек 2010
    Сообщения:
    77
    Симпатии:
    0
    Я недавно поднимал похожую тему, это какбы в продолжение есть скрипт
    Код (Text):
    1.  $path="in.txt";
    2. $path1="file.txt";
    3. $path2="file1.txt";
    4. $by=file($path1);
    5. $b=file($path2);
    6. $a=file($path);  // массив строк, которые можно обработать и
    7.        //$poisk=array('к','а','m');
    8.        //$zamena=array('г','f','k');
    9.        $new= substr_replace($by,$b,$a);
    10. foreach($new as $key=>$value){
    11.   echo  "<li>$key.$value</li>\n";
    12.  
    13. }    
    $path - здесь список слов в столбик
    $path1 - столбиком буквы(кирилица)
    $path2 - столбиком буквы(латиница)
    мне нужно что бы все буквы, что во $path былы заменены на $path2, т.е. ищем с строке букву кирилицы и заменяем её на латиницу, чтобы в итоге все буквы были заменены, т.е. кот => rjn. а получается что в одном элементе меняется только одна буква и всё, хотя в описание к функции substr_replace сказанно, что замена будет всех что найдёт(как я понял)

    подскажите, пожалуйста, в чём ошибка или может это по другому нужно реализовать?
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
  3. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Ты уже задрал ей богу.))

    чем тебе не нравится..

    PHP:
    1. <?PHP
    2.        ini_set('display_errors',1);
    3.        error_reporting(E_ALL);
    4.   setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
    5.        
    6.        
    7.        $a=array('dog saf saf','cat safas sfafa','map sfdF');
    8.        $poisk=array('d','a','m');
    9.        $zamena=array('а','с','т');
    10.        $new=str_ireplace($poisk,$zamena,$a);
    11.        foreach($new as $value)
    12. {
    13. echo $value.'<br>';
    14. }
    15.        
    16.          ?>
    Тут тоже 3 массива. Фактически отображение того , что происходит при помощи file.

    а file это и есть массивы строк.

    функция subtsr_replace заменяет часть строки целиковым значением и ее применение необходимо когда ты заменяешь позицию в строке, т.е. изначально не зная что в ней.

    strtr фактически тот же str_replace, только гораздо менее удобный.

    http://php.su/functions/?strtr
    http://php.su/functions/?substr-replace