Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
15 / 14 / 4
Регистрация: 22.05.2013
Сообщений: 524
1

Манипуляция с строками

10.06.2017, 02:36. Показов 1188. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите пожалуйста, как сделать, что бы нормально работало? - Создать форму с 2-мя полями ввода строк и кнопкой, при нажатии которой запускается скрипт, выводящий следующую информацию согласно варианта:
1. длины строк, третий символ каждой из строк;
2. результат сравнения введенных строк (описать словесно);

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$ST1=$_POST["ST1"]; $ST2=$_POST["ST2"];  
 
if (strlen($ST1)<2 | strlen($ST1)<2)
{
    echo "Ошибка! Вы ввели в 1 строке - " ."<b>\" $ST1 \"</b>". " и/ или 2 строке - " . "<b>\" $ST2 \"</b>" .", Меньше <i>3 </i> символов, Введите больше 3 символов!";
    echo "<br><a href = http://L5/L.php > <i> Назад </i></a>";
}
else if ("$ST1"=="$ST2")
{
    echo "<br>". "Строка $ST1 = $ST2" ."</br>"."</br>". strlen($ST1) . " символов/а в 1 строке"  ."</br>". "Третий символ каждой из строк '$ST1' - ". substr("$ST1", 2,1). "</br>"."</br>". strlen($ST2)." символов/а в 2 строке" . "</br>"."Третий символ каждой из строк '$ST2' - ". substr("$ST2", 2,1);
}
else if($ST1!=$ST2)
{
    echo "</br>". "Строка $ST1 не ровна $ST2" ."</br>"."</br>". strlen($ST1) ." символов/а в 1 строке"."</br>". "Третий символ каждой из строк '$ST1' - ". substr("$ST1",2, 1) . "</br>"."</br>". strlen($ST2)." символов/а в 2 строке" ."</br>". "Третий символ каждой из строк '$ST2' - ". substr("$ST2",2, 1);
}
?>
не работает это условие
PHP
1
2
3
4
5
if (strlen($ST1)<2 | strlen($ST1)<2)
{
    echo "Ошибка! Вы ввели в 1 строке - " ."<b>\" $ST1 \"</b>". " и/ или 2 строке - " . "<b>\" $ST2 \"</b>" .", Меньше <i>3 </i> символов, Введите больше 3 символов!";
    echo "<br><a href = http://L5/L.php > <i> Назад </i></a>";
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2017, 02:36
Ответы с готовыми решениями:

Манипуляция со строками в Label
У меня есть Lable которыу в одной строке вмещает 100 символов (101-ый переходит на новую строку) и...

Манипуляция с ячейками !
Здравствуйте, очень нужна ваша помощь есть ячейка в таблице, у которой прописаны мин макс...

Частотная манипуляция
Как переделать схему, чтобы битовая последовательность была 1100111? У меня мозг взрывается, я...

Манипуляция с байтами
Здравствуйте. есть массив байт byte b2 = new byte; в него планируется копировать, ДОПУСТИМ,...

4
2 / 1 / 5
Регистрация: 08.06.2017
Сообщений: 15
10.06.2017, 03:56 2
Лучший ответ Сообщение было отмечено SENDEJER как решение

Решение

Здравствуйте, SENDEJER

Список ваших ошибок:
1) В строке 4 где написано условия if(), вы используйте условию "OR" не правильно с одним знаком "|" а условия "OR" выглядеть так "||".
2) Предупреждение! strlen - это не для мультибайтовые символы таких как кириллица поэтому чтоб была результат по точнее используйте его мультибайтную версию "mb_strlen()".
PHP
1
2
3
4
echo strlen("w"); // 1 - символ
echo strlen("ы"); // 2 - символ
 
echo mb_strlen("ы"); // 1 - символ
3) Рекомендации. Не обязательно брать в кавычки переменную в условиях "$ST1"=="$ST2". Еще для сравнение строк чтобы результат быстрее используйте трехкратное проверку "$ST1"==="$ST2", $ST1!==$ST2.
4) Функция substr() - тоже не для мультибайтовые символы, поэтому используйте mb_substr().

Ваш полный код выглядеть так после исправление ошибок:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
 
$ST1=$_POST["ST1"]; $ST2=$_POST["ST2"]; 
 
if (mb_strlen($ST1) < 2 || mb_strlen($ST1) < 2)
{
    echo "Ошибка! Вы ввели в 1 строке - " ."<b>\" $ST1 \"</b>". " и/ или 2 строке - " . "<b>\" $ST2 \"</b>" .", Меньше <i>3 </i> символов, Введите больше 3 символов!";
    echo "<br><a href = http://L5/L.php > <i> Назад </i></a>";
}
else if ($ST1 === $ST2)
{
    echo "<br>". "Строка <b>$ST1</b> = <b>$ST2</b>" ."</br>"."</br>". mb_strlen($ST1) . " символов/а в 1 строке"  ."</br>". "Третий символ каждой из строк <b>'$ST1'</b> - ". mb_substr("$ST1", 2,1). "</br>"."</br>". mb_strlen($ST2)." символов/а в 2 строке" . "</br>"."Третий символ каждой из строк <b>'$ST2'</b> - ". mb_substr("$ST2", 2,1);
}
else if($ST1 !== $ST2)
{
    echo "</br>". "Строка <b>'$ST1'</b> не ровна <b>'$ST2'</b>" ."</br>"."</br>". mb_strlen($ST1) ." символов/а в 1 строке"."</br>". "Третий символ каждой из строк <b>'$ST1'</b> - ". mb_substr("$ST1",2, 1) . "</br>"."</br>". mb_strlen($ST2)." символов/а в 2 строке" ."</br>". "Третий символ каждой из строк <b>'$ST2'</b> - ". mb_substr("$ST2",2, 1);
}
 
?>
1
2170 / 1653 / 840
Регистрация: 10.01.2015
Сообщений: 5,192
10.06.2017, 06:48 3
Цитата Сообщение от DEXSHOG Посмотреть сообщение
Еще для сравнение строк чтобы результат быстрее используйте трехкратное проверку
DEXSHOG, что значит "чтобы результат быстрее"?
=== - это не "трехкратная проверка", а тождественное равенство. Не вводите новичков в заблуждение.
PHP
1
2
3
4
$a = 1;
$b = '1';
echo var_dump($a == $b); //bool(true)
echo var_dump($a === $b); //bool(false)
1
2 / 1 / 5
Регистрация: 08.06.2017
Сообщений: 15
10.06.2017, 09:24 4
Хорошо, Пифагор!
0
15 / 14 / 4
Регистрация: 22.05.2013
Сообщений: 524
10.06.2017, 10:16  [ТС] 5
Цитата Сообщение от DEXSHOG Посмотреть сообщение
Список ваших ошибок:
1) В строке 4 где написано условия if(), вы используйте условию "OR" не правильно с одним знаком "|" а условия "OR" выглядеть так "||".
2) Предупреждение! strlen - это не для мультибайтовые символы таких как кириллица поэтому чтоб была результат по точнее используйте его мультибайтную версию "mb_strlen()".
Понял, большое спасибо, забыл про "||".
0
10.06.2017, 10:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2017, 10:16
Помогаю со студенческими работами здесь

Фазовая манипуляция
Помогите пожалуйста разобраться с реализацией фазовой манипуляции в матлаб. sm(t) = g(t)cos. Мне...

Манипуляция с ссылками
Привет, скажите как сделать такое есть переменная $site в ней в одну строку могут быть ссылки...

Манипуляция нормалями в блендере
создал mesh составлен из разных деталей, на плоских поверхностях текстура материала отображается...

Манипуляция с динамическими файлами
Ребята! Всем доброго здоровья :-) Есть загвоздка в решении такой задачи: 1) человек вводит в...

Манипуляция внутри файла
Привет пацаны! :) Нуждаюсь в вашей помощи, немогу понять как работают функции rewind и fseek Как...

Амплитудная и фазовая манипуляция
Уважаемые форумчане! Помогите пожалуйста разобраться, как написать программу для построения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru