За последние 24 часа нас посетили 18005 программистов и 1597 роботов. Сейчас ищут 873 программиста ...

Вывод строки где больше символов

Тема в разделе "PHP для новичков", создана пользователем Luchfan12, 19 ноя 2015.

  1. Luchfan12

    Luchfan12 Новичок

    С нами с:
    19 ноя 2015
    Сообщения:
    10
    Симпатии:
    0
    Код (PHP):
    1. <form>
    2. <input type="text" name="string_one"/>
    3. <input type="text" name="string_two"/>
    4. <input type="text" name="symbol"/>
    5. <input type="submit" value="Отправить"/>
    6. </form>
    7.  
    8. <?php
    9.  
    10. Function myReplace ($string_one,$string_two,$symbol)
    11. {
    12. $count_one = 0;
    13. $count_two = 0;
    14. for ($i=0; $i<strlen($string_one); $i++)
    15. {
    16. if ($string_one[$i] == "$string_two")
    17. $count_one++;   
    18. if ($string_one[$i] == "$symbol")
    19. $count_two++;   
    20. }   
    21. if ($count_one>$count_two)
    22. {
    23. echo "First string";
    24. }
    25. if ($count_one<$count_two)
    26. {
    27. echo "Second string";
    28. }
    29.     
    30. }
    31. $string_one = $_REQUEST['string_one'];
    32. $string_two = $_REQUEST['string_two'];
    33. $symbol = $_REQUEST['symbol'];
    34. myReplace ($string_one,$string_two,$symbol);
    35. ?>
    Есть форма, где содержатся 3 поля, 2 из них для ввода строк, а одно для ввода исследуемого символа. Ввожу две строки и символ и извлекаю их. Программа должна выводить в какой из 2 двух строк больше исследуемых символов, а она ничего не выводит. Где нужно исправить?

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Код (PHP):
    1. $str1 = 'abc aaa bcd';
    2. $str2 = 'abc def aba';
    3. $symbol = 'a';
    4.  
    5. $cnt1 = substr_count($str1, $symbol);
    6. $cnt2 = substr_count($str2, $symbol);
    7. echo $cnt1 == $cnt2 'Равное число' : ( $cnt1 > $cnt2 'В первой больше' : 'Во второй больше' ); 
    Если нужна регистронезависимость, то можно так:
    Код (PHP):
    1. substr_count(strtoupper($str), strtoupper($symbol)); 
    P.S. mb_substr_count() - для мультибайтовых строк
     
  3. Luchfan12

    Luchfan12 Новичок

    С нами с:
    19 ноя 2015
    Сообщения:
    10
    Симпатии:
    0
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Что-то я вас не понял. $str1 и $str2 - это будут ваши строки из двух первых input-ов. $symbol - тот самый символ, который нужно найти в этих строках. substr_count -возвращает число вхождений подстроки. В качестве такой подстроки, у вас выступает символ ($symbol) . Дальше идёт сравнение с помощью тернарного оператора