Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
SENDEJER
5 / 5 / 3
Регистрация: 22.05.2013
Сообщений: 386
1

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

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

подскажите пожалуйста, как сделать, что бы нормально работало? - Создать форму с 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2017, 02:36
Ответы с готовыми решениями:

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

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

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

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

Работа со строками
Дано: Строка содержащая список путей к файлам, разделенные символом точка с...

4
DEXSHOG
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
Пифагор
Модератор
1196 / 996 / 519
Регистрация: 10.01.2015
Сообщений: 3,352
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
DEXSHOG
2 / 1 / 5
Регистрация: 08.06.2017
Сообщений: 15
10.06.2017, 09:24 4
Хорошо, Пифагор!
0
SENDEJER
5 / 5 / 3
Регистрация: 22.05.2013
Сообщений: 386
10.06.2017, 10:16  [ТС] 5
Цитата Сообщение от DEXSHOG Посмотреть сообщение
Список ваших ошибок:
1) В строке 4 где написано условия if(), вы используйте условию "OR" не правильно с одним знаком "|" а условия "OR" выглядеть так "||".
2) Предупреждение! strlen - это не для мультибайтовые символы таких как кириллица поэтому чтоб была результат по точнее используйте его мультибайтную версию "mb_strlen()".
Понял, большое спасибо, забыл про "||".
0
10.06.2017, 10:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2017, 10:16

Работа со строками
Ребят, помогите пожалуйста! задание такое :Написать программу, которая...

Таблица с n строками
Здравствуйте! Возник вопрос. Как переделать этот код: &lt;? function...

Работа со строками
Ребята, привет. Помогите пожалуйста разобраться с задачкой =):scratch: Вот...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru