PHP: Работа с Google Doc

Сегодня я решил рассказать о том, как можно средствами PHP получить доступ к документу Google (Google Doc). В качестве примера возьмем пример табличного документа.
Для начала создадим документ, например, следующего содержания:
https://docs.google.com/spreadsheet/ccc?key=0Amx98IVw4m3CdHdmVnFHd1VZTVF0YU5sZTFZbEY3eWc&usp=sharing

Далее нам необходимо «расшарить» наш документ в Интернет. Для этого в меню Гугл док выбираем пункт «Файл», затем «Опубликовать в Интернете…». В появившемся окне ставим галку «Автоматически публиковать…» и нажимаем кнопку «Начать публикацию». Далее в разделе «Ссылка на опубликованные данные» в первом списке выбираем нужный тип представления данных, в нашем случае выберем тип CSV. После всего этого, внизу окна мы увидим нужную нам ссылку.
В нашем случае это: https://docs.google.com/spreadsheet/pub?key=0Amx98IVw4m3CdHdmVnFHd1VZTVF0YU5sZTFZbEY3eWc&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/pub?key=0Amx98IVw4m3CdHdmVnFHd1VZTVF0YU5sZTFZbEY3eWc&output=csv';
//Получаем наш файл из гугл док в виде массива
$table = fsCsvToArray($fileUrl);
//Выводим наш массив на экран
formatPrint($table);
?>

Вот и все. Достаточно просто и быстро.

Запись опубликована в рубрике PHP с метками , , , , , , , , , , . Добавьте в закладки постоянную ссылку.