⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo-zend.php.txt

📁 google的gdata api包
💻 TXT
📖 第 1 页 / 共 2 页
字号:
<?php/* Load the Zend Gdata classes. */set_include_path(dirname(__FILE__) . '/ZendGdata-0.9.3/library');require_once 'Zend/Loader.php';Zend_Loader::loadClass('Zend_Feed_EntryAtom');Zend_Loader::loadClass('Zend_Gdata');Zend_Loader::loadClass('Zend_Gdata_AuthSub');/* Register namespaces for Google Base ('g') and batch requests ('batch'). */Zend_Feed::registerNamespace('g', 'http://base.google.com/ns/1.0');Zend_Feed::registerNamespace('batch', 'http://schemas.google.com/gdata/batch');/* The items feed URL, used for queries, insertions and batch commands. */$itemsFeedURL = "http://www.google.com/base/feeds/items";/* Types of cuisine the user may select when inserting a recipe. */$cuisines = array('African', 'American', 'Asian', 'Caribbean', 'Chinese',  'French', 'Greek', 'Indian', 'Italian', 'Japanese', 'Jewish',   'Mediterranean', 'Mexican', 'Middle Eastern', 'Moroccan',   'North American', 'Spanish', 'Thai', 'Vietnamese', 'Other');function createOrEditEntry($entry) {  $newEntry = $entry;  $newEntry->category['scheme'] = 'http://base.google.com/categories/itemtypes';  $newEntry->category['term'] = 'Recipes';  $newEntry->title['type'] = 'text';  $newEntry->title = $_POST['recipe_title'];  $newEntry->{'g:cuisine'} = $_POST['cuisine'];  $newEntry->{'g:item_type'} = 'Recipes';  $newEntry->{'g:item_type'}['type'] = 'text';  $newEntry->{'g:cooking_time'} = $_POST['time_val'] . ' ' .                                  $_POST['time_units'];  $newEntry->{'g:cooking_time'}['type'] = 'intUnit';  $newEntry->{'g:main_ingredient'} = $_POST['main_ingredient'];  $newEntry->{'g:main_ingredient'}['type'] = 'text';  $newEntry->{'g:serving_count'} = $_POST['serves'];  $newEntry->{'g:serving_count'}['type'] = 'number';  $newEntry->content = $_POST['recipe_text'];  return $newEntry;}/** * Creates the Zend_Feed_EntryAtom used to insert a new recipe. */function buildNewEntry() {  return createOrEditEntry(new Zend_Feed_EntryAtom());}function buildUpdatedEntry($entry) {  return createOrEditEntry($entry);}/** * Creates the XML content used to perform a batch delete. */function buildBatchXML() {  $counter = 0;  $result =  '<?xml version="1.0" encoding="UTF-8"?>' . "\n";  $result .= '<feed xmlns="http://www.w3.org/2005/Atom"' . "\n";  $result .= ' xmlns:g="http://base.google.com/ns/1.0"' . "\n";  $result .= ' xmlns:batch="http://schemas.google.com/gdata/batch">' . "\n";  foreach($_POST as $key => $value) {    if (substr($key, 0, 5) == "link_") {      $counter++;      $newEntry = new Zend_Feed_EntryAtom();      $newEntry->{'id'} = $value;      $newEntry->{'batch:operation'}['type'] = 'delete';      $newEntry->{'batch:id'} = $counter;      $result .= $newEntry->saveXMLFragment();    }  }  $result .= '</feed>' . "\n";  return $result;}/** * Exchanges the given single-use token for a session * token using AuthSubSessionToken, and returns the result. */function exchangeToken($token) {  return Zend_Gdata_AuthSub::getAuthSubSessionToken($token);}/** * Inserts a new recipe by performing an HTTP POST to the * items feed. */function postItem() {  global $itemsFeedURL;  $client = Zend_Gdata_AuthSub::getHttpClient($_POST['token']);  $gdata = new Zend_Gdata($client);  $response = $gdata->post(buildNewEntry()->saveXML(), $itemsFeedURL);  return $response;}/** * Updates an existing recipe by performing an HTTP PUT * on its feed URI, using the updated values a PUT data. */function updateItem() {  global $itemsFeedURL;  $client = Zend_Gdata_AuthSub::getHttpClient($_POST['token']);  $gdata = new Zend_Gdata($client);  $feed = $gdata->getFeed($itemsFeedURL . "?");  foreach ($feed as $feed_entry) {    if ($feed_entry->link('edit') == $_POST['link']) {      $updatedEntry = buildUpdatedEntry($feed_entry);      $updatedEntry->save();      return true;    }  }}/** * Deletes a recipe by performing an HTTP DELETE (a custom * cURL request) on its feed URI. */function deleteItem() {  $client = Zend_Gdata_AuthSub::getHttpClient($_POST['token']);  $gdata = new Zend_Gdata($client);  $gdata->delete($_POST['link']);}/** * Deletes all recipes by performing an HTTP POST to the * batch URI. */function batchDelete() {  global $itemsFeedURL;          $client = Zend_Gdata_AuthSub::getHttpClient($_POST['token']);  $gdata = new Zend_Gdata($client);  $response = $gdata->post(buildBatchXML(), $itemsFeedURL . "/batch");      return $response;}/** * We arrive here when the user first comes to the form. The first step is * to have them get a single-use token. */function showIntroPage() {  global $itemsFeedURL;  $next_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];  $redirect_url = Zend_Gdata_AuthSub::getAuthSubTokenUri($next_url, $itemsFeedURL, 0,1);  print '<html>' . "\n";  print '<head><title>PHP Demo: Google Base API</title>' . "\n";  print '<link rel="stylesheet" type="text/css" href="../../../css/dev_docs.css">' . "\n";  print '</head>' . "\n";  print '<body><center>' . "\n";  print '<table style="width:50%;">' . "\n";  print '<tr>' . "\n";  print '<th colspan="2" style="text-align:center;">PHP Demo: Google Base data API' .        '<br><font size=-1><span style="font-variant: small-caps;">Powered By</span>' .        ' <a href="http://framework.zend.com/download/gdata">' .        'Zend Google Data Client Library</a></font></th>' . "\n";  print '</tr>' . "\n";  print '<tr><td>Before you get started, please <a href="' . $redirect_url .       '">sign in</a> to your personal Google Base account.</td></tr>' . "\n";  print '</table>' . "\n";  print '</center></body></html>' . "\n";}/** * Prints the table of recipes the user has already entered * on the left-hand side of the page. */function showRecipeListPane($token) {  print '<td style="width:50%; text-align:center; vertical-align:top">' . "\n";  print '<table>' . "\n";  print '<tr><th colspan="5" style="text-align:center">Recipes you have added</th></tr>' . "\n";  global $itemsFeedURL;  $client = Zend_Gdata_AuthSub::getHttpClient($token);  $gdata = new Zend_Gdata($client);  try {    $feed = $gdata->getFeed($itemsFeedURL . "?");    if ($feed->count() == 0) {      print '<tr><td colspan="5" style="text-align:center"><i>(none)</i></td></tr>' . "\n";    } else {      print '<tr>' . "\n";      print '<td style="text-align:center"><i>Name</i></td>' . "\n";      print '<td style="text-align:center"><i>Cuisine</i></td>' . "\n";      print '<td style="text-align:center"><i>Serves</i></td>' . "\n";      print '<td colspan="2" style="text-align:center"><i>Actions</i></td>' . "\n";      print '</tr>' . "\n";      foreach ($feed as $feed_entry) {        $link_list = $feed_entry->link();        $href = $link_list[0]->getAttribute('href');        print "<tr>\n";        print '<td align="left" valign="top"><b><a href="' . $href . '">' .              $feed_entry->title() . '</a></b></td>' . "\n";        print '<td style="text-align:center;vertical-align:top">' .              $feed_entry->cuisine() . '</td>' . "\n";        print '<td style="text-align:center;vertical-align:top">' .              $feed_entry->serving_count() . '</td>' . "\n";        /* Create an Edit button for each existing recipe. */        print '<td style="text-align:center;vertical-align:top">' . "\n";        print '<form method="post" action="' . $_SERVER[PHP_SELF] .              '" style="margin-top:0;margin-bottom:0;">' . "\n";        print '<input type="hidden" name="action" value="edit">' . "\n";        print '<input type="hidden" name="token" value="' . $token . '">' . "\n";        print '<input type="hidden" name="edit" value="' . $feed_entry->id() . '">' . "\n";        print '<input type="submit" value="Edit">' . "\n";        print '</form>' . "\n";        print '</td>' . "\n";        /* Create a Delete button for each existing recipe. */        print '<td style="text-align:center; vertical-align:top">' . "\n";        print '<form method="post" action="' . $_SERVER[PHP_SELF] .              '" style="margin-top:0;margin-bottom:0;">' . "\n";        print '<input type="hidden" name="action" value="delete">' . "\n";        print '<input type="hidden" name="token" value="' . $token . '">' . "\n";        print '<input type="hidden" name="link" value="' .              $feed_entry->id() . '">' . "\n";        print '<input type="submit" value="Delete">' . "\n";        print '</form>' . "\n";        print '</td>' . "\n";        print '</tr>' . "\n";      }    }    /* Create a "Delete all" button" to demonstrate batch requests. */    print '<tr><td colspan="5" style="text-align:center">' . "\n";    print '<form method="post" action="' . $_SERVER[PHP_SELF] .      '" style="margin-top:0;margin-bottom:0">' . "\n";    print '<input type="hidden" name="action" value="delete_all">' . "\n";    print '<input type="hidden" name="token" value="' . $token . '">' . "\n";    $i = 0;    foreach ($feed as $feed_entry) {      print '<input type="hidden" name="link_' . $i . '" value="' .            $feed_entry->id() . '">' . "\n";      $i++;    }    print '<input type="submit" value="Delete All"';    if ($feed->count() == 0) {      print ' disabled="true"';    }    print '></form></td></tr>' . "\n";    print '</table>' . "\n";    print '</td>' . "\n";  } catch (Exception $e) {    showMainMenu("Error: " . $e->getMessage(), $token);  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -