во-первых, это не ответ. Лучше новый вариант кода вставить в сам вопрос, отредактировав его.
Кроме того, хорошо прятать длинный код в тег <spoiler>.
Песочница, где с вашим кодом смогут работать и другие - например, jsFiddle. Этюды jsFiddle можно вставлять и сюда прямо в вопрос/ответ, и тут же можно будет их запустить. Кнопка большой «+»
По сути вопроса. Бинарный поиск это предположение варианта точно по середине, и сокращение диапазона поиска на одну из двух половин. В вашем коде это кроде бы отсутствует.
вариант 0:
(самостоятельно) обойти популярные международные сервисы объявлений и посмотреть, какие решения по защите номеров применяются у них. Проанализировать их сильные и слабые стороны. Составить сравнительную таблицу.
orange_blue, где, например?
Это серые, если не черные технологии. «Бывает», что и через вебку смотрят и микрофон слушают. Для продаж, вероятно, удобно. Но..
LolaHuligang, это способ установить соответствие между URL и выполняемым кодом. Похожим образом роутинг организован и в других фреймворках: Laravel, Lumen, Slim.
Если код простой, можно как в вашем случае прямо функцию записать. Если объемный, можно его держать в отдельном файле/классе и из роутера ссылаться на метод класса.
Чтобы это работало, от веб-сервера (apache, nginx) требуется реализовать т.н. паттерн "front controller" – когда запросы к несуществующим файлам переадресуются на корневой index.php, а тот уже разбирается, как быть.
Кроме того, хорошо прятать длинный код в тег <spoiler>.
Песочница, где с вашим кодом смогут работать и другие - например, jsFiddle. Этюды jsFiddle можно вставлять и сюда прямо в вопрос/ответ, и тут же можно будет их запустить. Кнопка большой «+»
По сути вопроса. Бинарный поиск это предположение варианта точно по середине, и сокращение диапазона поиска на одну из двух половин. В вашем коде это кроде бы отсутствует.