Yandex.Директ Проблемы с выводом массива

12
G
На сайте с 21.04.2013
Offline
1
697

Здравствуйте.

Обращаюсь в основном к тем кто разбирается в api директа.

Появилась проблема. Есть скрипт для авто поднятия ставок.

http://yadi.sk/d/8V7o2_Y05KaCu

Скрипт выводит массив с информацией вида:

http://yadi.sk/d/BimCebFB5KKPo

Пытались добавить в него распределение на три компании (обычные компании, компании быстрожрущие деньги, очень большие компании)

http://yadi.sk/d/vA1h6Xrx5KaMe

Новый скрипт также выводит массив, но на определенном месте обрывается:

http://yadi.sk/d/6ReotbvT5KKPU

Подскажите в чем может быть ошибка скрипта?

Или предложите свою помощь в доработке первого скрипта.

За реальный и быстрый результат готов заплатить (в разумных пределах)

Спасибо

VHS-1980
На сайте с 21.05.2010
Offline
91
#1

Проверьте логи системы. У Вас скорее всего или память или место на диске закончилось. Вывод массива на 125мб....

G
На сайте с 21.04.2013
Offline
1
#2

Если вы говорите про второй лог, он как раз создается после работы проблемного скрипта. А нормальный лог занимает максимум 0.7 мб

VHS-1980
На сайте с 21.05.2010
Offline
91
#3
goroo:
Если вы говорите про второй лог, он как раз создается после работы проблемного скрипта. А нормальный лог занимает максимум 0.7 мб

Так Вам что нужно? Второй лог прерывается в середине записи элемента массива, что с большой долей вероятности намекает на то, что закончились какие-то ресурсы для продолжения работы скрипта.

Сократите вывод в файл наполовину и запустите скрипт еще раз.

Для начала var_dump() закомментируйте. Вывод сократится в разы.

G
На сайте с 21.04.2013
Offline
1
#4

Я понял, что вы намекаете на память. Но проблема именно в не правильном выводе массива начиная с "array(7207) {", и этот вывод занимает основное место. Первый скрипт работал без проблем. Как я думаю ошибки в коде, только сам не разберусь.

VHS-1980
На сайте с 21.05.2010
Offline
91
#5

Еще раз говорю - нет проблемы в Вашем скрипте, он бы обрывался на законченной операции, а не посередине вывода инфы об элементе массива. У Вас скорее всего ограничение по памяти в 128мб.

Закомментируйте строки с var_dump и скиньте получившийся результат.

G
На сайте с 21.04.2013
Offline
1
#6

Попробовал, как вы сказали. Результат тот же, не правильный вывод массива начиная с "array(7207) {".

VHS-1980
На сайте с 21.05.2010
Offline
91
#7
goroo:
Попробовал, как вы сказали. Результат тот же, не правильный вывод массива начиная с "array(7207) {".

И как Вы получили array(7207)? В Вашем скрипте это делает только var_dump.

Строка 150. Строка 157. Это избыточная информация. Вывод не будет большим. Если будет ошибка - она будет явно в другом месте.

G
На сайте с 21.04.2013
Offline
1
#8

Честно скажу понятия не имею. Закомментировал var_dump. На выходе тот же результат

VHS-1980
На сайте с 21.05.2010
Offline
91
#9
goroo:
Честно скажу понятия не имею. Закомментировал var_dump. На выходе тот же результат

Давайте еще раз. Исходя из файла на 125мб и файла скрипта - весь вывод заполняет вывод инфы о массиве на 7207 элементов. То есть первый var_dump()

Обрывается на 7083 элементе. То есть var_dump не завершен.

Проверьте, тот ли скрипт выполняете, который редактируете.

G
На сайте с 21.04.2013
Offline
1
#10

Скрипт редактировал точно тот.

Вот пример работы первого скрипта без лишнего вывода, так и должно быть:

http://yadi.sk/d/s2a3IWQR5KXhc

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий