info@a-coding-project.de

PHP-Beispiele: Dateien und Verzeichnisse

Mit PHP kann man auf das Dateisystem des Servers zugreifen, die Verzeichnisstruktur lesen, Ordner anlegen, ihre Namen ändern und sie wieder löschen, Dateien erzeugen, in gewissen Grenzen bearbeiten, kopieren, verschieben und löschen.

Dateien und Verzeichnisse lesen und schreiben

Das Dateisystem, auf das zugegriffen wird, ist das des Servers, auf dem das PHP-Skript läuft. PHP behandelt den Server dabei so wie die Festplatte eines lokalen PC's, in Windows z.B. mit dem Laufwerk C: Allerdings wird bei den Pfadangaben kein Backslash () benutzt sondern Slash (/).
Voraussetzung für das Ansprechen von Dateien ist natürlich, dass der PHP-Prozess Rechte auf die entsprechenden Ordner hat.

PHP kann eine Datei erzeugen und mit Inhalt füllen:

<?php
$file = fopen("Datei.txt", "w");
$geschrieben = fwrite($file, "Mein Text");
fclose($file);
?>

Die Funktion fopen öffnet dazu die Datei (bzw. erstellt sie, sofern sie nicht existiert) und öffnet sie zum Schreiben. In verschiedenen Schritten kann PHP dann prüfen, ob die Datei angelegt wurde:

<?php
// Pfad festlegen:
$path = "./Dateien/";
// Datei festlegen:
$filename = "Datei.txt";
// prüfen, ob es diesen Pfad schon gibt:
if(!dirname($path)!= $path) 
{
 // wenn es den Ordner noch nicht gibt, wird er angelegt
 echo "Der Pfad existiert noch nicht.<br>";
 $pfadangelegt = mkdir($path);
 if (dirname($path)) 
 { echo "Der Pfad wurde angelegt<br>"; }
 else
 { die("Der Pfad konnte nicht angelegt werden."); }
}

// prüfen, ob es die Datei schon gibt
if(file_exists($path.$filename)) 
{ echo "Die Datei existiert schon.<br>"; }
else 
{ echo "Die Datei existiert noch nicht.<br>"; }

// Datei neu anlegen bzw. öffnen
$file = fopen($path.$filename, "w");
// in die Datei schreiben
$geschrieben = fwrite($file, "Mein Text");
// Datei schliessen
fclose($file);
?>

Dateien können umbenannt werden:

<?php
// rename: Datei umbenennen
// (hier wird Datei test.txt in test1.txt umbenannt;
// Voraussetzung: Die Datei muss im Verzeichnis c:/test existieren
$result = rename("c:/test/test.txt", "c:/test/test1.txt");
?>

Mehr über die Umbenennung von Dateien und Ordnern

PDF-Dateien erzeugen

PHP verfügt über spezielle Funktionen zum Erzeugen von PDF-Dateien und deren Inhalt. Dazu muss die PHP-Installation um die PDF-Bibliothek (PDFLib) erweitert werden, die unter Umständen nicht gesondert installiert, sondern nur aktiviert werden muss. Sie steht als Download bereit. Unter Umständen ist sie aber schon installiert und muss nur aktiviert werden.

Eine PDF-Datei wird mit PHP in mehreren Schritten erzeugt. Zunächst wird eine Datei erzeugt, indem sie geöffnet wird. Beispiel:

<?php
$pdf = pdf_new();
pdf_open_file($pdf, 'meinedatei.pdf');
?>

Um eine gültige PDF-Datei zu erzeugen, müssen im 2.Schritt nun noch die entsprechenden Informationen übergeben werden, z.B.

pdf_set_info($pdf,'Author', "Hans Hase");
pdf_set_info($pdf,'Title', "Mein erstes PDF");
pdf_set_info($pdf,'Creator', "Hans Hase");
pdf_set_info($pdf,'Subject', "Mein erstes PDF");
pdf_begin_page($pdf, 595, 842);

Als nächstes sollten nun die Schriftarten eingerichtet werden, da dies bei PDFs separat erfolgen muss und nicht von PHP automatisch zur Verfügung gestellt wird:

//fonts
pdf_set_parameter($pdf, "FontOutline", 'Verdana=verdana.ttf');
$fontA = pdf_findfont($pdf, "Verdana", "host", 1);
$fontB = pdf_findfont($pdf, "Times New Roman", "host", 1);

Im Beispiel werden dazu zwei Fonts direkt importiert - einmal explizit aus einer TTF-Datei und einmal aus den systemweiten Fonteinstellungen.
Um nun Text auszugeben, bestimmt man als erstes den Schrifttyp, Art und Farbe die man verwenden möchte und schreibt dann den gewünschten Text in die Datei. Beispiel:

pdf_setfont($pdf, $font, 20);
pdf_set_value($pdf,'textrendering',0);
pdf_setcolor($pdf, "both", "rgb", 0.45, 0.45, 0.45, 0); //#808080
pdf_show_xy($pdf, "Ich bin ein PDF", 300, 100);

Ebenso lassen sich auch grafische Elemente, wie etwa Linien einfügen:

pdf_moveto($pdf, 60, 160);
pdf_lineto($pdf, 550, 260);
pdf_stroke($pdf);

Als letztes wird die Datei geschlossen und das Dokument ist fertig:

pdf_end_page($pdf);
pdf_close($pdf);

Weiterlesen: ⯈ PHP: Gravatar API ansteuern

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant