使用Google文档作为数据库?

hyp*_*not 11 php xml mysql csv google-sheets

我想为一个站点创建一个非常简单的PHP页面,它将显示一个时间表/日历,如数据,其中每个插槽可以是免费的,也可以在其中预约.

因为所有数据实际上只是一个表,例如{month,day,hour,talk_name,talk_description},我想为什么不使用Google Docs电子表格作为数据库.好吧,主要原因是我只是在阅读有关如何在PHP中使用MySQL的书籍,所以我肯定不会达到以下目标:

  • 创建一个很好的管理界面来管理事件
  • 让整个事情变得安全(我的意思是我对安全性的所有想法都是使用.htaccess作为管理文件夹,并使网站在其他地方只读).

另一方面,每个人都可以使用Google Spreadsheets来编辑表格,因此安全方面和UI方面都将得到解决.

我的问题是你怎么建议我这样做?Google文档可以以XML和CSV格式发布.我可以使用fgetcsv来获取数据吗?你能给我一些简单的例子来解析csv,如果它有效(好吧,它每天少于50次),如果我会做这样的事情(抱歉抽象语法)?

$source_csv = fgetcsv(...);

get_talk_name(x,y,z) {
  for all rows in $source_csv {
    if (month == x && day == y && hour == z) return talk_name
  }
}

get_talk_desc(x,y,z) {
  for all rows in $source_csv {
    if (month == x && day == y && hour == z) return talk_name
  }
}
Run Code Online (Sandbox Code Playgroud)

Yah*_*hel 22

所以,虽然它可能不是明智的或可扩展的,但是,你可以做到.试试这段代码:

<?php
$url = "https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AupgXsRU8E9UdC1DY0toUUJLV0M0THM4cGJTSkNSUnc&output=csv";
$row=0;

if (($handle = fopen($url, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
Run Code Online (Sandbox Code Playgroud)

基本上,将电子表格发布为公共,通过手动编辑URL(即,output=csv)将输出更改为csv(从默认HTML ),获取它,然后使用逐行迭代fgetcsv.

如果电子表格如下所示:

在此输入图像描述

这将为有问题的csv输出以下内容:

array(2) {
  [0]=>
  string(4) "Name"
  [1]=>
  string(5) "Value"
}
array(2) {
  [0]=>
  string(3) "Foo"
  [1]=>
  string(5) "13123"
}
array(2) {
  [0]=>
  string(3) "Bar"
  [1]=>
  string(3) "331"
}
Run Code Online (Sandbox Code Playgroud)