PHP Dyn. PDF anzeigen lassen

Skaarhybrid

Cadet 4th Year
Registriert
Mai 2008
Beiträge
68
Hi,

habe eine seite auf der man eingebettet pdfs anschauen kann.

ca. so:
HTML:
<embed src="Embed.pdf#toolbar=0&navpanes=0&scrollbar=0" width="500" height="375">



Nun kommt das problem:
ich habe in einem verzeichnis meines webservers nen haufen PDFs zu liegen.
Ich möchte via PHP realisieren, dass beim klicken auf einen link/button, quasi das nächste pdf aus dem verzeichnis angezeigt wird.

UND: brauch ich dazu zwingend ne datenbank dahinter ?

Stichwörter oder kleinere lösungsansätze wären sehr hilfreich, würde mich in den rest dann schon reinfuchsen.

Vielen Dank im Voraus.:)
 
Du kannst über PHP einfach das Verzeichnis mittels scandir auslesen. Ob die Dateien wirklich immer in der gleichen Reihenfolge ausgelesen werden weiß ich nicht, aber du könntest es einfach mal testen. Denn dann kannst du einfach alle Dateien in ein Array schreiben und für den Link zum nächsten Dokument suchst du den aktuellen Dateinamen und nimmst dann die Datei im Array, die auf die aktuelle folgt.

http://de2.php.net/manual/en/function.scandir.php
 
Sowas ähnliches habe ich vor langer Zeit für ein Projekt in der Schule programmiert, folgende Funktion hatte ich dafür geschrieben:

PHP:
  /**
   * Get PDF files of given directory.
   * 
   * @access private
   * @return bool
   */
  private function getPdfs($dir) {
    if ($dir_iterator = new RecursiveDirectoryIterator(IP . $dir)) {
      if ($iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST)) {
        $data = new ArrayObject();
        foreach($iterator as $value) {
          if ($value->isFile() && preg_match('/.pdf/i', $value)) {
            $data[$value->getFilename()] = $value->getFileInfo();
          }
        }
        $data->ksort();
        foreach ($data as $file) {
          if ($file->isFile() && preg_match('/.pdf/i', $file)) {
            $title = (string)str_replace(array('.pdf', '_'), array('', ' '), $file->getFilename());
            $size  = (int)$file->getSize() / 1024;
            $unit  = ' KB';
            if ($size > 1000) {
              $size /= 1024;
              $unit = ' MB';
            }
            echo '<li><a target="helpwindow" href="'. $dir . urlencode($file->getFilename()) .'" title="Download: '. $title .'">'. $title .'</a> ('. (int)$size .' KB)</li>';
          }
        }
        return TRUE;
      }
    }
    return FALSE;
  }

Beachte, dass es sich hierbei um einen objektorientierten Ansatz handelt. Du kannst das Ganze so abändern, dass es deinen Anforderungen entspricht.

PS: Die Konstante IP steht für inclusion path und enthält den Pfad zum root-Verzeichnis vom Webserver:

PHP:
// Inclusion path
define(IP, dirname(__FILE__);

Durch die Verwendung von absoluten Pfaden werden alle Funktionen beschleunigt, da PHP sich nicht durchs Dateisystem hangeln muss und sofort weiß wo sich etwas zu befinden hat.
 
vielen vielen dank. werde deinen code schon sehr bald ausprobieren.

bin grad krass froh das ihr mir schon mal nen stück weitergeholfen habt.:)
 

Ähnliche Themen

Zurück
Oben