За последние 24 часа нас посетили 9049 программистов и 470 роботов. Сейчас ищут 97 программистов ...

Некоторые вопросы по поводу пребразования строк

Тема в разделе "PHP для новичков", создана пользователем nikki4, 31 окт 2009.

  1. nikki4

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

    С нами с:
    31 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    делаю прогу, типа словаря - вводишь текст и там после нажатия на кнопку тебе на основе массива другой текст выводят. такое работает уже кое как.. но всеже есть пару моментов которые нужно доделать

    1) чтобы если последняя буква в форме введенной была допустим "В", тогда она заменялась например на "7"
    2) чтобы все большие буквы становились маленькими

    для второго использовал специальную команду.. но она там чего-то с кодировкой не то делает.
    а вот по поводу первого я попробовал сделать так.. вот только почему-то он ничего не делает с текстом и как была "В" так и осталась


    Код (Text):
    1. <?php
    2. if($_POST["confirm"]) //это я нашел в каком-то примере, как сделать чтобы если текст не введен, то при нажатии на кнопку было сообщение об ошибке
    3. {
    4. $error="Внимание!";
    5. $slovo=$_POST["slovo"];
    6. if(strlen($slovo)==0)
    7. {$error.=" Введите слово";
    8. }
    9. }
    10. if($error!="Внимание!")
    11. {print "$error";
    12. }
    13.  
    14. ?> // это функция чтоб последнюю букву В заменить на "7"
    15. <? function prepare($slovo){
    16. $strlength = strlen($slovo);
    17. if ($slovo[$strlength] == "в")
    18. $slovo[$strlength] = "7";
    19. return $slovo;
    20. } ?>
    21. <?
    22. $mass = array(а=>..., б=>..., в=>..., и так далее очень много символов которые заменяются)
    23.  
    24. <form action="test.php" method="post" name="text" >
    25. <input type="text" size="40" maxlength="35" name="slovo" id="slovo" value="<?php echo $_POST["slovo"] ?>">
    26. <input type="hidden" name="confirm" id="confirm" value="12345">
    27. <input type="submit"; name="vvod"; value="Ввести"; >
    28.  
    29.  
    30. <?php
    31. if($_POST["confirm"] && $error=="Внимание!")// а здесь уже идет проверка введены ли символы и если введены то преобразовать текст с помощью функции, а затем на основе массива заменить и вывести новый текст
    32. {$slovo = $_POST['slovo'];
    33. $slovo = prepare($slovo);
    34. echo strtr($slovo, $mass);}
    35. ?>
    но всеравно не меняет букву В на "7" просто преобразовывает текст на основе массива, как будто игнорирую функцию преобразования предварительного буквы В на 7
     
  2. ideea

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

    С нами с:
    3 окт 2009
    Сообщения:
    60
    Симпатии:
    0
    PHP:
    1. <?php
    2. $str = "Mary Had A Little Lamb and She LOVED It So";
    3. $str = strtolower($str);
    4. echo $str; // Prints mary had a little lamb and she loved it so
    5. ?>
    http://lv.php.net/manual/en/function.strtolower.php
    http://lv.php.net/manual/en/function.array-splice.php
    Но тут думаю, есть способ получше.[/php]
     
  3. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. // $word = $_POST['slovo'];
    4. $word = "Бобров";
    5.  
    6. // Производим замену
    7. $word = preg_replace('/[в]{1}$/i', '7', trim($word));
    8.  
    9. ?>
     
  4. nikki4

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

    С нами с:
    31 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    попробовал этот пример.. добавил в конец echo ($word);
    но он мне выдает вот что

    Бобро�7
     
  5. nikki4

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

    С нами с:
    31 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    а со с strtolower тоже проблема.. он выводит:

    кодировка utf-8