Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP для начинающих

Войти
Регистрация
Восстановить пароль
 
SENDEJER
3 / 3 / 1
Регистрация: 22.05.2013
Сообщений: 369
#1

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

10.06.2017, 02:36. Просмотров 111. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Манипуляция с строками (PHP):

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

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

Работа со строками - PHP
&lt;form&gt; &lt;input type=&quot;text&quot; name=&quot;s&quot; value=&quot;abc&quot; /&gt; &lt;input type=&quot;submit&quot; /&gt; &lt;/form&gt; &lt;? Function myReplace($s) ...

Работа со строками - PHP
Всем привет ! Помогите или водскажіте как реализовать вот такое задание: В рядку руских слов визначити - 1)киличество слов 2)...

Работа со строками - PHP
Настраиваю форум и хочу немного оптимизировать тексты. Форум бесплатный и доступны только шаблоны страниц. В HTML-шаблоне, часть...

Работа со строками - PHP
Подскажите, как реализовать следующую задачу, мне нужно: 1) Создать форму с текстовой областью и текстовым полем. 2) Вывести всю строку...

4
DEXSHOG
2 / 1 / 4
Регистрация: 08.06.2017
Сообщений: 15
10.06.2017, 03:56 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Здравствуйте, 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
Пифагор
Модератор
1183 / 986 / 372
Регистрация: 10.01.2015
Сообщений: 3,321
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 / 4
Регистрация: 08.06.2017
Сообщений: 15
10.06.2017, 09:24 #4
Хорошо, Пифагор!
0
SENDEJER
3 / 3 / 1
Регистрация: 22.05.2013
Сообщений: 369
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
Привет! Вот еще темы с ответами:

Работа со строками - PHP
{MODULE}COUNTER{/MODULE} Надо получить содержимое между {MODULE}{/MODULE} тоесть COUNTER и записать это значение в переменную

работа со строками - PHP
В общем, заполняется анкета на сайте. Например: Получаем название фирмы: &lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 3pt...

Работа со строками - PHP
Есть ряд целых чисел №1: И есть ряд целых чисел №2: Вопрос: Как сделать наиболее эффективно и правильно : 1. Найти все...

Работа со строками - PHP
Здравствуйте! Есть две строки, например, вот такие: Каким образом можно их разбить: 1. Чтобы улицу и район можно было отделить...


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

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

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