display("<b>Type:</b>", $ebook->getDcType()); display("<b>Format:</b>", $ebook->getDcFormat()); display("<b>Sources:</b>", $ebook->getDcSource()); display("<b>Relation:</b>", $ebook->getDcRelation()); display("<b>Coverage:</b>", $ebook->getDcCoverage()); } function display($title, $data) { $info = ""; if (is_array($data)) { foreach ($data as $element) { if ($info == "") { $info = $element; } else { $info = $info . ", " . $element; } } $data = $info; } if ($data != "") { echo $title . " " . $data . "\n <br />"; } } $ebookfile = "C:\\dropbox\\ebooks\\Beautiful_Code.epub"; //read our epub file $ebook = new ebookRead($ebookfile); //$creator = $ebook->ebookData->creator; $creator = $ebook->getDcCreator(); print_r($creator); echo "<br>"; echo $creator[0];
# if the rootpath doesn't end in a slash, add it if ('/' != $rootpath[strlen($rootpath)]) { $rootpath .= '/'; } // get the name of the file we want the cover of // er, and what's to stop us going up a directory, eh? $filename = $_GET["filename"]; if (!$filename) { $filename = "Jules Verne - From the Earth to the Moon.epub"; } $filename = str_replace(".", "", $filename); $filename = str_replace("epub", ".epub", $filename); // horrible hack, but stops people having filename=../../ $epubfile = $rootpath . $filename; #echo $epubfile; $ebook = new ebookRead($epubfile); # in theory the cover is referenced in the <metadata> section by something like: # <meta name="cover" content="cover-image"/> # and then in the manifest something like: # <item id="cover-image" href="the_cover.jpg" media-type="image/jpeg"/> # but in reality it all seems to be a bit hit and miss. # try the <meta> route first, and then make some informed guesses #$coverReference = $this->getTag($this->ebookData->metadata, 'dclanguage'); $cover = $ebook->getManifestById('cover'); # if the type doesn't start with 'image', look elsewhere if (stripos($cover->type, 'image') === false) { #echo "cover is not an image, trying book-cover<br>"; $cover = $ebook->getManifestById('book-cover'); # if the type *still* doesn't start with 'image', look elsewhere if (stripos($cover->type, 'image') === false) { #echo "book-cover is not an image, trying cover-image<br>";
<?php require_once 'ebookRead.php'; require_once 'ebookData.php'; if (!isset($_SESSION)) { session_start(); } $ebookData = unserialize($_SESSION['esd']); $ebook = new ebookRead($ebookData); $spineInfo = $ebook->getSpine(); function buildToc($ebook) { $found = false; $spineInfo = $ebook->getSpine(); for ($x = 0; $x < count($spineInfo); $x += 1) { $content = $ebook->getContentById($spineInfo[$x]); if ($found) { break; } for ($y = 0; $y < count($spineInfo); $y += 1) { $manItem = $ebook->getManifestById($spineInfo[$y]); if (preg_match("/" . $manItem->href . "/", $content)) { $found = true; break; } } } if (!$found) { echo "<h2>Table of Contents</h2><br />"; $toc = $ebook->getTOC(); for ($x = 0; $x < count($spineInfo); $x += 1) {
//define channel $atom = new UniversalFeedCreator(); $atom->useCached(); $atom->title = "Books in {$epubdir}"; // todo: replace with a $catalogname field $atom->description = "epub files on my server"; $atom->link = "http://mydomain.net/"; $atom->syndicationURL = $scripturl; // sort the files by date so the most recent is first in the feed // preg_find(pattern, starting dir, args) $files = preg_find('/\\.epub$/', $epubdir, PREG_FIND_RECURSIVE | PREG_FIND_RETURNASSOC | PREG_FIND_SORTBASENAME | PREG_FIND_SORTDESC); $files = array_keys($files); // add the files to the feed foreach ($files as $file) { if (is_file($file)) { $ebook = new ebookRead($file); // entries $item = new FeedItem(); $item->title = $ebook->getDcTitle(); $item->linktype = "application/epub+zip"; $item->link = $file; // <link rel="x-stanza-cover-image" type="image/jpeg" href="cover.php?filename=$file"/> $coverLink = new LinkItem(); $coverLink->rel = "x-stanza-cover-image"; $coverLink->type = "image/jpeg"; $coverLink->href = "cover.php?filename={$file}"; $item->addLink($coverLink); $thumbnailLink = new LinkItem(); $thumbnailLink->rel = "x-stanza-cover-image-thumbnail"; $thumbnailLink->type = "image/jpeg"; $thumbnailLink->href = "cover.php?filename={$file}&type=thumb";
if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $newname)) { //echo "The uploaded file has been saved at: $newname \n <br />"; } else { echo "Error: A problem occurred during file upload!"; } } else { echo "Error: File " . $_FILES["uploaded_file"]["name"] . " already exists \n <br />"; } } else { echo "Error: Only .epub files are accepted for upload\n <br />"; } } else { echo "Error: No file uploaded\n <br />"; } //read our epub file $ebook = new ebookRead($newname); $_SESSION['esd'] = serialize($ebook->getEBookDataObject()); $_SESSION['efile'] = $newname; function metadata($ebook) { display("<b>Title:</b>", $ebook->getDcTitle()); display("<b>Creator:</b>", $ebook->getDcCreator()); display("<b>Description:</b>", $ebook->getDcDescription()); display("<b>ISBN or ID:</b>", $ebook->getDcIdentifier()); display("<b>Contributor(s):</b>", $ebook->getDcContributor()); display("<b>Contributor(s) Role:</b>", $ebook->getDcContributor("Role")); display("<b>Language:</b>", $ebook->getDcLanguage()); display("<b>Rights:</b>", $ebook->getDcRights()); display("<b>Publisher</b>:", $ebook->getDcPublisher()); display("<b>Subject:</b>", $ebook->getDcSubject()); display("<b>Date:</b>", $ebook->getDcDate());