getFilename() == '.' && preg_match('|/src$|ius', $file->getPath())){ throw new SeeOtherEbookException(preg_replace(['|' . WEB_ROOT . '|ius', '|/src$|ius'], '', $file->getPath())); } } } // Do we have the ebook cached? try{ $ebook = apcu_fetch('ebook-' . $wwwFilesystemPath); } catch(Safe\Exceptions\ApcuException $ex){ $ebook = new Ebook($wwwFilesystemPath); } // Generate the bottom carousel. $carousel = []; $ebooks = Library::GetEbooks(); shuffle($ebooks); $targetCarouselSize = 5; if(sizeof($ebooks) < $targetCarouselSize){ $targetCarouselSize = sizeof($ebooks) - 1; } $i = 0; while(sizeof($carousel) < $targetCarouselSize){ if(isset($ebooks[$i]) && $ebooks[$i]->Url !== $ebook->Url){ $carousel[] = $ebooks[$i]; } $i++; } } catch(SeeOtherEbookException $ex){ http_response_code(301); header('Location: ' . $ex->Url); exit(); } catch(\Exception $ex){ http_response_code(404); include(WEB_ROOT . '/404.php'); exit(); } ?> strip_tags($ebook->TitleWithCreditsHtml) . ' - Free ebook download', 'ogType' => 'book', 'coverUrl' => $ebook->DistCoverUrl, 'highlight' => 'ebooks', 'description' => 'Free epub ebook download of the Standard Ebooks edition of ' . $ebook->Title . ': ' . $ebook->Description]) ?>
WikipediaUrl){ ?>

Title) ?>

Authors as $author){ ?> Name != 'Anonymous'){ ?>

Name) ?> NacoafUrl){ ?>

HeroImage2xAvifUrl !== null){ ?>

Description

true]) ?> LongDescription === null){ ?>

There’s no description for this ebook yet.

LongDescription ?>
HasDownloads){ ?>

Read free

This ebook is only thought to be free of copyright restrictions in the United States. It may still be under copyright in other countries. If you’re not located in the United States, you must check your local laws to verify that the contents of this ebook are free of copyright restrictions in the country you’re located in before downloading or using this ebook.

Download for ereaders

    EpubUrl !== null){ ?>
  • Compatible epub All devices and apps except Kindles and Kobos.

  • Azw3Url !== null){ ?>
  • azw3 Kindle devices and apps.KindleCoverUrl !== null){ ?> Also download the Kindle cover thumbnail to see the cover in your Kindle’s library. You may be interested in our Kindle FAQ. Also see our Kindle FAQ.

  • KepubUrl !== null){ ?>
  • kepub Kobo devices and apps.

  • AdvancedEpubUrl !== null){ ?>
  • Advanced epub An advanced format that uses the latest technology not yet fully supported by most ereaders.

TextUrl !== null || $ebook->TextSinglePageUrl !== null){ ?>

Read online

A brief history of this ebook

    GitCommits as $commit){ ?>
  1. Message) ?>

GitHubUrl !== null){ ?>

More details

Improve this ebook

Anyone can contribute to make a Standard Ebook better for everyone!

To report typos, typography errors, or other corrections, see how to report errors.

GitHubUrl !== null){ ?>

If you’re comfortable with technology and want to contribute directly, check out this ebook’s GitHub repository and our contributors section.

You can also donate to the Standard Ebooks project to help fund continuing improvement of this and other ebooks.

0){ ?>