вопросы и ответы по использованию PHP
-
stalin_alex
- Сообщения: 19
- Зарегистрирован: 03 фев 2021, 12:39
Сообщение
stalin_alex » 15 мар 2021, 14:52
ребят подскажите как можно грамотно составить условие с массивом на три элемента. ОЧЕНЬ желательно через хранение в файлах ибо обращение будет с разных скриптов. Очень недобно во всех этих разных скриптах поддерживать актуальность базы данных (массивов с данными)
три элемента это:
1- разгаданный текст, 2- ключеные слова, 3- ответ.
Ключевых слов может быть несколько для одной загадки. Из-за отсутствия стабильного распознавания.
Код: Выделить всё
$textresult = $tesseractOCR->recognize"путь к файлу";
if (strpos($textresult, "ключевые слова") !== false)
{
$answer= "ответ1";
echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
}
else if (strpos($textresult, "ключевые слова2") !== false)
{
$answer= "ответ2";
echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
}
else if (strpos($textresult, "ключевые слова3") !== false)
{
$answer= "ответ3";
echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
}
else if (strpos($textresult, "ключевые слова4") !== false)
{
$answer= "ответ4";
echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
}
else if (strpos($textresult, "ключевые слова5") !== false)
{
$answer= "ответ5";
echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
}
else if ($answer=="0")
{
echo ("\n\n В текущей базе не найден :-(\n");
break;
}
-
Support
- Site Admin
- Сообщения: 1000
- Зарегистрирован: 10 апр 2009, 17:45
-
Контактная информация:
Сообщение
Support » 15 мар 2021, 21:04
можно в текстовый файл записать данные в таком виде:
Код: Выделить всё
разгаданный текст;ключеные слова;ответ
разгаданный текст;ключеные слова;ответ
разгаданный текст;ключеные слова;ответ
разгаданный текст;ключеные слова;ответ
и т.д.
Что бы прочитать его используем функцию файл и потом делим через explode
$arr_data =file("1.txt");
foreach($arr_data as $str)
{
$arr = explode(";",$str);
print_r($arr);
}
результат:
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ
)
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ
)
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ
)
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ
)
-
stalin_alex
- Сообщения: 19
- Зарегистрирован: 03 фев 2021, 12:39
Сообщение
stalin_alex » 15 мар 2021, 22:54
Скажите, а как быть с надобностью добавлять несколько "ключевые слова" ибо не всегда одинаково распознаётся текст
-
stalin_alex
- Сообщения: 19
- Зарегистрирован: 03 фев 2021, 12:39
Сообщение
stalin_alex » 15 мар 2021, 23:06
И ещё вопрос. Скажите а как можно КАПС лог взять в учёт. В случае, если распознанный текст окажется в капслоке, а ключевое слово от него без капс лока
-
stalin_alex
- Сообщения: 19
- Зарегистрирован: 03 фев 2021, 12:39
Сообщение
stalin_alex » 15 мар 2021, 23:24
И ещё. правильно - ли я понял, что для каждого добавляемого разгаданного текста, ключевого слова и ответа надо будет добавлять в скрипт новый блок:
Array
(
разгаданный текст
ключевые слова
ответ
)
???
-
Support
- Site Admin
- Сообщения: 1000
- Зарегистрирован: 10 апр 2009, 17:45
-
Контактная информация:
Сообщение
Support » 16 мар 2021, 00:24
stalin_alex писал(а): ↑15 мар 2021, 23:24
И ещё. правильно - ли я понял, что для каждого добавляемого разгаданного текста, ключевого слова и ответа надо будет добавлять в скрипт новый блок:
Array
(
разгаданный текст
ключевые слова
ответ
)
???
Это у вас отдельная строка в файле в виде
разгаданный текст;ключеные слова;ответ
Блок array это вывод в панели отладки. это результат работы функции
print_r($arr);
-
Support
- Site Admin
- Сообщения: 1000
- Зарегистрирован: 10 апр 2009, 17:45
-
Контактная информация:
Сообщение
Support » 16 мар 2021, 00:25
stalin_alex писал(а): ↑15 мар 2021, 23:06
И ещё вопрос. Скажите а как можно КАПС лог взять в учёт. В случае, если распознанный текст окажется в капслоке, а ключевое слово от него без капс лока
Приводите всё к одному регистру и сравнивайте в нём, к примеру к нижнему.
-
Support
- Site Admin
- Сообщения: 1000
- Зарегистрирован: 10 апр 2009, 17:45
-
Контактная информация:
Сообщение
Support » 16 мар 2021, 00:27
stalin_alex писал(а): ↑15 мар 2021, 22:54
Скажите, а как быть с надобностью добавлять несколько "ключевые слова" ибо не всегда одинаково распознаётся текст
В этом случае вы можете сделать формат файла таким:
Код: Выделить всё
разгаданный текст;ключеные слова1,ключеные слова2,ключеные слова3;ответ
и тогда код ваш будет :
$arr_data =file("1.txt");
foreach($arr_data as $str)
{
$arr = explode(";",$str);
$arr_keys = explode(",", $arr[1]);
// основной массив
print_r($arr);
// массив с ключами
print_r($arr_keys);
}
-
stalin_alex
- Сообщения: 19
- Зарегистрирован: 03 фев 2021, 12:39
Сообщение
stalin_alex » 16 мар 2021, 00:37
Support писал(а): ↑16 мар 2021, 00:25
stalin_alex писал(а): ↑15 мар 2021, 23:06
И ещё вопрос. Скажите а как можно КАПС лог взять в учёт. В случае, если распознанный текст окажется в капслоке, а ключевое слово от него без капс лока
Приводите всё к одному регистру и сравнивайте в нём, к примеру к нижнему.
Спасибо за помощь, но ещё был бы рад, если подскажете как это сделать)
Я про сведение в нижний регистр
P.S. всё. увидел в соседней теме. спасибо