Скрипт экспорта из Unisender - помогите зациклить и сохранить в файл

S
На сайте с 13.11.2012
Offline
72
706

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

В Unisender имею около миллиона подписчиков, стандартный экспорт в файл не работает, вторые сутки создает файл и пока всего 52% готовности.

Нашел в сети скрипт импорта по api, вроде работает шустро, но экспортирует по 1000 адресов (ограничение Unisender) и не сохраняет в файл.

Скрипт

// Ваш ключ доступа к API (из Личного Кабинета)

$api_key = "xxxxxxxxxxxx";

// Список для экспорта
$list = "420";

// Создаём POST-запрос
$POST = array (
'api_key' => $api_key,
'list_id' => $list,
);

// Устанавливаем соединение
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL,
'http://api.unisender.com/ru/api/exportContacts?format=json');
$result = curl_exec($ch);

if ($result) {
// Раскодируем ответ API-сервера
$jsonObj = json_decode($result);

if(null===$jsonObj) {
// Ошибка в полученном ответе
echo "Invalid JSON";

}
elseif(!empty($jsonObj->error)) {
// Ошибка получения данных
echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";

} else {
// Выводим полученные данные
$number_of_fields = count($jsonObj->result->field_names);
echo "<table border='1'>";
echo "<tr>";
for ($i=0;$i<$number_of_fields;$i++){
echo "<td> " . $jsonObj->result->field_names[$i] . "</td>";
};
echo "</tr>";
foreach ($jsonObj->result->data as $one) {
echo "<tr>";
for ($i=0;$i<$number_of_fields;$i++){
echo "<td> " . $one[$i] . "</td>";
};
echo "</tr>";
}
echo "</table>";

}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}

Скрипт выдает лишние поля, мне достаточно вытянуть только email, по возможности имя.

Как зациклить импорт, чтобы все адреса сохранились в один файл .csv?

Email, "Name"

Спасибо!

p.s. возможно есть готовые решения или сервисы, подскажите

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