PHPアプリケーションからGoogle Document Listを利用しよう
Zend FrameworkでGoogleアプリケーションを使い倒す(4)
ダウンロード サンプルファイル (2.1 KB)
ドキュメント検索
サーバー上のドキュメントを検索しましょう。タイトル名に含まれるキーワードやドキュメントのタイプから検索が可能です。

以下がドキュメントの検索に関するサンプルコードです。
echo "<a href=\"" . $_SERVER['SCRIPT_NAME'] . "?menu=search\">ドキュメント検索</a><br />"; //【1】
// 各メニューリンク押下時の処理振り分け
if(isset($_GET['menu'])) {
switch ($_GET['menu']) {
// 検索用フォーム表示
print <<<HTML
<h2>ドキュメント検索</h2>
<form method="post"> //【2】
キーワード:<input type="text" name="keyword" />
ファイルタイプ:<input type="radio" name="filetype" value="all" checked="" />すべて
<input type="radio" name="filetype" value="document" />文書
<input type="radio" name="filetype" value="spreadsheet" />スプレッドシート
<input type="radio" name="filetype" value="presentation" />プレゼンテーション
<input type="submit" name="search" value="検索" />
<input type="submit" name="cancel" value="キャンセル" /></form>
HTML;
break;
}
}
// 検索ボタン押下時動作
if(isset($_POST['search'])) {
// 検索ワードの設定 //【3】
if(!empty($_POST['keyword'])) {
$keyword = "?title=" . urlencode($_POST['keyword']);
} else {
$keyword = "";
}
// ファイルタイプの設定とFeedのURI 【4】
$filetype = $_POST['filetype'];
if(strcmp($filetype, "all") == 0) {
$feedUri = "http://docs.google.com/feeds/documents/private/full" . $keyword;
} else {
$feedUri = "http://docs.google.com/feeds/documents/private/full/-/" . $filetype . $keyword;
}
echo "キーワード【 " . $_POST['keyword'] . " 】、ファイルタイプ【 " . $filetype . " 】の検索結果
";
// フィードの取得
$listFeed = $serviceDocs->getDocumentListFeed($feedUri);
showDocumentList($listFeed);
}
1. ドキュメント検索リンク
表示やアップロードと同様に、自身のURLにパラメータ「search」を与えたリンクを作成します。
2. リンクメニューの振り分け
1.のリンクからパラメータを取得し、「search」であった場合、検索用のフォームを表示します。
ファイル名のキーワード用のテキストフォームと、文書の種類を選択するラジオボタンを作成します。
3. 検索ワードの設定
検索フォームのキーワード欄に入力されたデータを取得します。
タイトルを検索する場合にはフィードを要求するURLの末尾に「?title=○○○」を付与します。アップロードの際と同様に日本語に対応するためにurlencodeメソッドを使用しています。
今回はタイトルの検索ですが他に次のような検索も可能です。
| 付与する文字列 | 値 | 検索できる内容 |
| ?q | 文字列 | ドキュメント本文中に指定した文字列を含むドキュメント |
| ?title | 文字列 | ドキュメントのタイトルに指定した文字列を含むドキュメント |
| ?title-exact | true/false | titleと共に使用。trueの場合は完全一致するドキュメントが検索される |
今回のサンプルでは対応しておりませんが、半角スペースは「+」に置き換ることで検索できます。例えば「coffee shop」であれば「coffee+shop」とします。
4. ファイルタイプの設定とFeedのURI
フォームで指定されたドキュメントの種類によってフィードを要求するURIを編集します。
次のようにフィードを要求するURIによって取得できるドキュメントの種類が変わります。
| ドキュメントの種類 | URI |
| すべて | http://docs.google.com/feeds/documents/private/full |
| 文書 | http://docs.google.com/feeds/documents/private/full/-/document |
| スプレッドシート | http://docs.google.com/feeds/documents/private/full/-/spreadsheet |
| プレゼンテーション | http://docs.google.com/feeds/documents/private/full/-/presentation |
| 削除済みドキュメント | http://docs.google.com/feeds/documents/private/full/-/trashed |
| スター付きドキュメント | http://docs.google.com/feeds/documents/private/full/-/presentation/starred |
まとめ
いかがでしょうか。Zend_Gdata_Docsについて解説を行いました。本連載も4回目となりましたが、Zend_Gdata_YouTubeやZend_Gdata_Calendarと基本はほとんど同じことが分かりましたでしょうか。
次回はGoogle Spreadsheetsを扱うZend_Gdata_Spreadsheetsを解説します。サーバ上でエクセルやCSVといったドキュメントを操作できるサービスです。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Zend FrameworkでGoogleアプリケーションを使い倒す連載記事一覧
-
- PHPアプリでGoogle Spreadsheetをデータベースとして利用しよう
- PHPアプリケーションからGoogle Document Listを利用しよう
- PHPアプリケーションからGoogle Calendarを利用しよう(後編)
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 森山 絵美(モリヤマ エミ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
