當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Datasource::grab方法代碼示例

本文整理匯總了PHP中Datasource::grab方法的典型用法代碼示例。如果您正苦於以下問題:PHP Datasource::grab方法的具體用法?PHP Datasource::grab怎麽用?PHP Datasource::grab使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Datasource的用法示例。


在下文中一共展示了Datasource::grab方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: __executeDatasource

 /**
  * Executes a data source. Invalid XML is escaped (CDATA) but still
  * cached. Prevents persistent cached XML from breaking pages.
  *
  * @param Datasource $datasource
  *  The current data source object
  * @param int $file_age
  *  Cache file age (in seconds), passed by reference
  */
 private function __executeDatasource($datasource, &$param_pool = array())
 {
     $result = $datasource->grab($param_pool);
     $xml = is_object($result) ? $result->generate(true, 1) : $result;
     // Parse DS XML to check for errors. If contains malformed XML such as
     // an unescaped database error, the error is escaped in CDATA
     $doc = new DOMDocument('1.0', 'utf-8');
     libxml_use_internal_errors(true);
     $doc->loadXML($xml);
     $errors = libxml_get_errors();
     libxml_clear_errors();
     libxml_use_internal_errors(false);
     // No error, just return the result
     if (empty($errors)) {
         return $result;
     }
     // There's an error, so $doc will be empty
     // Use regex to get the root node
     // If something's wrong, just push back the broken XML
     if (!preg_match('/<([^ \\/>]+)/', $xml, $matches)) {
         return $result;
     }
     $ret = new XMLElement($matches[1]);
     // Set the invalid flag
     $ret->setAttribute("xml-invalid", "true");
     $errornode = new XMLElement("errors");
     // Store the errors
     foreach ($errors as $error) {
         $item = new XMLElement("error", trim($error->message));
         $item->setAttribute('line', $error->line);
         $item->setAttribute('column', $error->column);
         $errornode->appendChild($item);
     }
     $ret->appendChild($errornode);
     // Return the XML
     $ret->appendChild(new XMLElement('broken-xml', "<![CDATA[" . $xml . "]]>"));
     return $ret;
 }
開發者ID:symphonists,項目名稱:cacheabledatasource,代碼行數:47,代碼來源:extension.driver.php


注:本文中的Datasource::grab方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。