Example #1
0
 /**
  * Unserialize data
  * @param string $data
  * @return Page
  */
 public function unserialize($filePath, $data = null)
 {
     if ($data === null) {
         $data = $filePath;
         $filePath = '';
     }
     $headerInfos = preg_split("/\\s[-=]{3,}\\s+/", $data, 2);
     $headerData = trim($headerInfos[0]);
     preg_match_all("/(\\w+(?:\\[\\])?)[\\s:=]+(.+)/", $headerData, $headerMatches);
     $page = new Page();
     $pageInfo = array();
     for ($i = 0; $i < count($headerMatches[1]); ++$i) {
         $key = trim($headerMatches[1][$i]);
         $key = strtolower($key);
         $val = rtrim($headerMatches[2][$i], "\r\n");
         if (strlen($key) > 2 && substr($key, -2) === '[]') {
             $val = preg_split("/[\\s,]+/", $val);
         }
         $pageInfo[$key] = $val;
     }
     $page = Page::pageFactory($pageInfo);
     $page->url = $filePath;
     $page->content = $headerInfos[1];
     return $page;
 }