Хорошо. Давайте рассуждать логически.
Для начала исключаем возможность, что какой-то другой код в другом месте пишет в лог строки в таком же формате.
spoiler
Или не исключаем? Не могли скопипастить куда-то случайно?
Получается, что
1) некое значение приходит из get_option
2) оно сравнивается с "magic"
3) оказывается, что оно не равно "magic", но по логам значением все же "magic".
То есть "magic", но не "magic". Как такое возможно?
Может ли быть такое, что get_option иногда возвращает не то значение? Да, может. Надо смотреть, что там и как. Инжектиться в другое место, в саму get_option или даже в место до get_option, и ловить значение там.
Далее как может быть "magic" != "magic" ? Очевидно, что что-то с кодировкой. Других вариантов просто нет.
spoiler
Или есть? Ну вообще. есть, но они фантастические, типа у вас своя кастомная сборка пхп с модами, или даже вирус, который полностью подменил пхп. И сумел сделать это как на боевом, так и на тестовом. Маловероятно, не так ли? Значит, дело в кодировке.
Примеров, когда в кодировке какая-то лажа, много. Но случайно такое вряд ли получится. А мы вроде как ищем баг.
Что еще может быть? Вход и обработку мы рассмотрели. Осталось рассмотреть выход. А это функция error_log. Вот вам и вопрос. Как она устроена? Какие опции по умолчанию? Может быть, там банально вкрался пробел или "\n" в конце, а error_log его обрезает автоматически.
LionG, о, появились отступы. Так гораздо лучше, спасибо. Да и код поменялся.
Теперь видно, что функция не вызывает себя в бесконечной рекурсии, как я думал, а используется один раз.
Навскидку: вы сидите, тыкаете кнопку "обновить страничку". В логе всё хорошо. Но это реальный сайт. Так что параллельно с вами заходит китаец. Или бот какой-то. Один раз всего лишь. Вы продолжаете тыкать F5. Далее смотрите лог. Ну и чему это противоречит?
Leytenant, тогда можете погуглить "велотрекер ios" и подобное. Возможно, удастся использовать не по прямому назначению такие приложения. У меня варианты кончились.
Leytenant, Ясно. Посмотрите опции вашего оператора связи. По идее можно оформить просмотр своих координат на веб-сайте. Насчет реального времени не уверен, но это веб, уже проще. Может история будет предоставлена вам прямо там (то, что она существует, это 100%). Как минимум, можно юзер скриптом вытаскивать координаты и отправлять на URL. Плюс вы не имеете дело iOS. Плюс экономится батарейка. Минус - нужна открытая вкладка с сайтом оператора, но может и удастся спарсить ее сервером. В общем, я бы в эту сторону копал.
Егор, я и не говорил, что факт. Жизнь вообще - сложная штука. Для всех сложная. Я лишь сказал, что (цитирую): можно осилить. Очевидно, если постараться. И судя по тому, как составлен вопрос, автор настроен серьезно, и шансы у него хорошие. И с заказчиками он будет не общаться, а дела делать.
StynuBlizz, координаты 50 объектов не дадут нагрузку. Здесь можно думать об удобстве и не думать о производительности. А вот если у вас там highpoly и крутые текстуры, это да.
kuzubina, очевидно, что с помощью JSON.stringify(score[0].home_score) вы можете получить только одну строку. Значит, вы используете цикл. Вот в цикле и считайте сумму и количество, дальше легко поделить - и будет среднее.
А повторять вопрос не нужно. Понятнее не стало. Содержимое переменной score не понятно. У вас какой-то скрипт что-то выводит кусками. Я вас просил выполнить JSON.stringify(score), чтобы понять, что там. Без цикла. Просто. Должна получится одна строка. А вы мне снова какой-то список из какого-то скрипта, о котором нужно телепатически догадываться.
а как теперь можно получить среднее значение из полученных данных?
я уже сказал - вызвать JSON.stringify(score), только в качестве результата должна быть одна строка. Откуда вы взяли несколько, только вам известно.
выдает первые значения
Если хотите, чтобы вас понимали, говорите понятно. Я не знаю, что выдает. Не знаю, сколько значений. Не знаю, первые относительно чего. И вообще не ясно, что вам нужно: среднее всего массива или первых значений. И массив ли это. Пока что выясняем, что вообще содержится в переменной score, которая, как я понял, основная.
kuzubina, что значит строками? У функции JSON.stringify может быть всего одно значение, JS не умеет в несколько значений. Так что если вы один раз вызываете функцию для score, то должны получить всего одну строку.
Это сложно. Задача явно искусственная, придуманная математиком. Так что здесь не столько программирование, сколько математика.
Вряд ли всё сводится к какой-то формуле вида f(K), иначе бы программирование с алгоритмами было бы вовсе не при чем. Значит, подразумевается какой-то перебор.
Очевидно, что узкое место в том, что большие числа не помещаются в размерность регистров процессора. Значит, должен быть способ как-то сокращать числа. И при этом всё же потребуется перебрать их все (вплоть до 105).
Первое, что приходит в голову - убирать 10, а также 2*5. То есть если очередной множитель оканчивается на нули, то просто убирать их. Дальше ищем пары чисел: одно кончается на 5, другое четное. Делим соответственно.
Вместо 1,2,3,4,5 должно остаться 1,1,3,4,1. Ну или 1,2,3,2,1 (смотря как перебирать, хе).
Далее таким же образом нужно как-то сокращать остальные числа. Как именно - с ходу не скажу, надо думать. Как я и сказал, это больше математическая задачка. Т.е. это задача, а не вопрос.
Тогда всё просто. Сначала вычисляем факториал, переводим резульатат в строку, и с конца ищем нужную цифру. Либо еще можно брать остаток от деления на 10, пока не получим цифру или пока само число не кончится.