Сегодня я решил рассказать о том, как можно средствами 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); ?>
Вот и все. Достаточно просто и быстро.