korzystanie z Google Docs jako bazy danych?
Chciałbym stworzyć bardzo prostą stronę PHP dla witryny, która pokazywałaby harmonogram / kalendarz jak dane, gdzie każdy slot byłby albo wolny, albo miał jakieś spotkanie w nim.
Ponieważ wszystkie dane są w rzeczywistości tylko jedną tabelą, coś w rodzaju {Miesiąc, Dzień, godzina, talk_name, talk_description}, pomyślałem, dlaczego nie użyć arkusza kalkulacyjnego Google Docs jako bazy danych. OK, głównym powodem jest to, że właśnie czytam książki o tym, jak używać MySQL w PHP, więc zdecydowanie nie jestem na poziomie do:
- Tworzenie ładnego interfejsu administratora do zarządzania wydarzeniami
- Upewnij się, że wszystko jest bezpieczne (mam na myśli, że wszystkie moje wyobrażenie o bezpieczeństwie jest użycie .htaccess dla folderu administratora i spraw, aby witryna była tylko do odczytu w innym miejscu).
Z drugiej strony każdy może używać arkuszy kalkulacyjnych Google do edycji tabeli, więc w ten sposób zarówno aspekty bezpieczeństwa, jak i aspekty interfejsu użytkownika zostaną rozwiązane.
Moje pytanie brzmi, jak poleciłbyś mi to zrobić? Google Docs może zarówno publikować w Formaty XML i CSV. Czy mogę po prostu użyć fgetcsv, aby uzyskać dane? Czy możesz mi podać kilka prostych przykładów jak parsować csv, i czy byłoby to efektywne (ok, będzie mniej niż 50 odsłon dziennie), czy zrobiłbym coś takiego (przepraszam za abstrakcyjną składnię)?$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
}
}
5 answers
Więc, chociaż może nie być mądre lub skalowalne, tak, możesz to zrobić. Wypróbuj ten kod:
<?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);
}
Zasadniczo Opublikuj arkusz kalkulacyjny jako publiczny, Zmień wyjście na csv (z domyślnego HTML), ręcznie edytując adres URL (tj.fgetcsv
.
Jeśli arkusz wygląda tak:
To wyświetli następujący komunikat dla danego pliku 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"
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-05 13:32:53
Możesz spróbować dla Zabawy. Ale jeśli potrzebujesz tylko wspólnego kalendarza, użyj czegoś takiego jak Kalendarz Google. Interfejs API Kalendarza Google umożliwia aktualizację kalendarza z programu. Możesz również osadzić kalendarz w swojej witrynie za pomocą wbudowanego kalendarza Google Helper.
Nie tak zabawne, jak programowanie go od podstaw ... ;-)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-18 04:03:08
Napisałem trochę PHP z Zend framework do czytania arkuszy kalkulacyjnych Google. Kod dostępny tutaj http://www.geekzone.co.nz/hellonearthisman/6647
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-18 05:22:35
Sprawdź tę stronę, aby uzyskać całkiem proste podejście do korzystania z arkusza kalkulacyjnego GDocs jako CRUD DB. użycie jest zgodne z tym wzorcem, ale najpierw musisz pobrać klasę Zend i plik GDocs/PHP z Githuba...
<?php // Zend library include path
set_include_path(get_include_path() . PATH_SEPARATOR . "$_SERVER[DOCUMENT_ROOT]/ZendGdata-1.8.1/library");
include_once("Google_Spreadsheet.php");
$u = "[email protected]";
$p = "password";
$ss = new Google_Spreadsheet($u,$p);
$ss->useSpreadsheet("My Spreadsheet");
// if not setting worksheet, "Sheet1" is assumed
// $ss->useWorksheet("worksheetName");
$row = array
( "name" => "John Doe", "email" => "[email protected]", "comments" => "Hello world" );
if ($ss->addRow($row)) echo "Form data successfully stored using Google Spreadsheet";
else echo "Error, unable to store spreadsheet data";
?>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-07 17:43:17
Nie mam wystarczająco dużo rep, aby dodać komentarz powyżej, ale nowa metoda eksportowania arkusza do CSV działa.
Twój adres URL jako (publicznie) udostępniony z arkuszy:
https://docs.google.com/spreadsheets/d/9999999999999/edit?usp=sharing
Zmień koniec /edit?usp=sharing to /export?format=csv
Jak:
https://docs.google.com/spreadsheets/d/99999999999999/export?format=csv
Źródło: https://productforums.google.com/d/msg/docs/An-nZtjaupU/llWy4eYFywcJ
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-21 23:55:24