Ниже рассматривается процесс получения и обработки файла Гугл-таблицы на сервере с помощью php-скрипта. Пример приводится без записи в БД (и без взаимодействия с API CMS), т.к. тут всё индивидуально.
Чтобы получить и обработать данные, нужно выполнить небольшие приготовления на стороне Гугл-таблицы. А именно, открыть файл для редактирования.
После этого можно приступать к, собственно, написанию кода.
Итак, задача звучит так: Нужно получить данные с первого листа и обработать их на стороне сервера с помощью php.
Из нашей ссылки на файл в Гугл-таблицах нам нужно записать в переменную 2 параметра:
https://docs.google.com/spreadsheets/d/1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc/edit#gid=0, где:
1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc — id нашего документа;
0 — id первого листа (всегда равен 0);
То есть, в файле будет:
$doc_id = '1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc';
$gid = '0';
Дальше нам нужно получить файл в CSV-формате:
$csv = file_get_contents('https://docs.google.com/spreadsheets/d/' . $doc_id . '/export?format=csv&gid=' . $gid);
$csv = explode("\r\n", $csv);
$array = array_map('str_getcsv', $csv);
Теперь мы можем приступить к обработке данных из файла (содержимое скрипта зависит от ваших задач. В данном примере — это просто вывод на экран данных из файла).
foreach ($array as $arr){
$html .= '<tr>';
foreach ($arr as $td) {
$html .= '<td>'.$td.'</td>';
}
$html .= '';
}
<table>
<?echo $html;?>
</table>
Результат выполнения скрипта:
Весь код из данной статьи:
<DOCTYPE !html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<?
//Получаем файл
$doc_id = '1A44sfdbXkRURERf0xVw8rfgLrxtt8IPZQiqE_zpoGA-jc';
$gid = '0';
$csv = file_get_contents('https://docs.google.com/spreadsheets/d/' . $doc_id . '/export?format=csv&gid=' . $gid);
$csv = explode("\r\n", $csv);
$array = array_map('str_getcsv', $csv);
foreach ($array as $arr){
$html .= '<tr>';
foreach ($arr as $td) {
$html .= '<td>'.$td.'</td>';
}
$html .= '';
}
?>
<table>
<?echo $html;?>
</table>
</body>
</html>
В заключение стоит сказать, что у Гугл-таблиц есть определенные нюансы, связанные с частотой обращения к файлу. Но, по опыту автора, при не очень интенсивном использовании (отработка CRON-скрипта раз в сутки), проблем не возникало.