Головні новини
Ви тут: Головна / php / Робота з Google Doc

Робота з Google Doc



Сьогодні я вирішив розповісти про те, як можна засобами PHP отримати доступ до документа Google (Google Doc). Як приклад візьмемо приклад табличного документа.

Для початку створимо документ, наприклад, такого змісту: https://docs.google.com/spreadsheet/ccc?key=0As2NnE-lH8OpdDkwOTVfYUk2MjQwRDlGWkp6OF9Da1E&usp=sharing

Далі нам необхідно «розшарити» наш документ в Інтернет. Для цього в меню Гугл док вибираємо пункт «Файл», потім «Опублікувати в Інтернеті…». У вікні ставимо галочку «Автоматично публікувати…» і натискаємо кнопку «Почати публікацію». Далі в розділі «Посилання на опубліковані дані» у першому списку вибираємо потрібний тип представлення даних, в нашому випадку виберемо тип CSV. Після всього цього, внизу вікна ми побачимо потрібне нам посилання.
У нашому випадку це: https://docs.google.com/spreadsheet/ccc?key=0As2NnE-lH8OpdDkwOTVfYUk2MjQwRDlGWkp6OF9Da1E&output=csv
Тепер перейдемо безпосередньо до програмування:

<?php
//Задаємо кодування файлу UTF-8
header('Content-type: text/html; charset=utf-8');
//Функція для перекладу файлу у форматі CSV в масив
//@ param $pFile - Шлях до файлу CSV
//@ param $pDelimiter - Роздільник стовпців у файлі CSV
//@ return array
function fsCsvToArray($pFile, $pDelimiter = ',')
{ 
    if (($handle = fopen($pFile, 'r')) !== FALSE) { 
      $i = 0; 
      while (($lineArray = fgetcsv($handle, 4000, $pDelimiter, '"')) !== FALSE) { 
        for ($j = 0; $j < count($lineArray); $j++) { 
          $arr[$i][$j] = $lineArray[$j]; 
        } 
        $i++; 
      } 
      fclose($handle); 
    } 
    return $arr; 
} 
//Функція для форматованого виведення роботи функції print_r
function formatPrint($arr)
{
  echo '<pre>';
  print_r($arr);
  echo '</pre>';
}

//Посилання на наш опублікований файл CSV
$fileUrl = 'https://docs.google.com/spreadsheet/ccc?key=0As2NnE-lH8OpdDkwOTVfYUk2MjQwRDlGWkp6OF9Da1E&output=csv';
//Получаем наш файл из гугл док в виде массива
$table = fsCsvToArray($fileUrl);
//Выводим наш массив на экран
formatPrint($table);
?>

Ось і все. Досить просто і швидко.



Автор Володимир Гривінський



1 коментар

Залишити коментар

Ваша електронна адреса не буде опублікована.

Вгору
UA TOP Bloggers