2
« on: April 29, 2018, 01:32:53 PM »
Приветствую уважаемых пользователей Кликермана и прошу небольшой помощи)
На входе имеем капчу из арифметического примера состоящего из двух одно или двухзначных чисел вида:
1+4=? или 2+45=? или 23-1=? или 99+57=?
С помощью алгоритма уважаемого dramsterа капча замечательно распознается (мой земной поклон dramsterу за замечательно работающий скрипт), на выходе имеем строку:
$all_str= 1+4=? или 2+45=? или 23-1=? или 99-57=?
то есть строковую переменную...
И собственно, сам вопрос. Как мне понять (в арифметическом смысле) знак в примере, плюс или минус и решить эту капчу?
Фильтруя сию переменную, получаю чистый пример:
$all_str = STRFILTER($all_str, "=?", 0)
4+67 или 45-23 или 67-2... и т.д.
снова фильтрую строку, получаю переменную знака: плюс или минус:
$ZN= STRFILTER($all_str, "-+", 1)
далее фильтрую получившийся результат по знаку $ZN, вношу данные в массив и имею два числа в массиве:
strseparate($all_str, $ZN, $arr)
И вот тут у меня случился глюк, не могу понять как решить этот пример, складывать или вычитать? Т.е. проблема с определением знака.
Решение сканировать картинку знака - не комильфо... кажется мне, что есть более элегантное решение, а вот найти его не могу, так как в строковых переменных пока еще не рублю). И вот собственно прошу помощи у более опытных товарищей)