3 nützliche unbekannte PHP Funktionen

Ich hasse ja persönlich Artikel wie diesen (313373 PHP Speed Optimization Tweeks you can not live without … gäähn). Aber beenden wir das Selbstbashing und kommen zum Punkt.

stream_resolve_include_path (php >= 5.3.2)

Manchmal kann es nützlich sein zu wissen, wo genau sich eine includete Datei versteckt. Der include_path macht es einem da ja oft nicht einfach.

var_dump(stream_resolve_include_path("fpdf/fpdf.php"));
//string(31) "D:\xampp\php\PEAR\fpdf\fpdf.php"

DateTime::createFromFormat (php >= 5.3.0)

Zum „entwirren“ von Zeitangaben gehe ich gerne den Weg über strtotime und date. Etwa so:

echo date("d.m.Y H:i:s", strtotime("Mon, 15 Aug 2005 15:12:46 UTC"));
//15.08.2005 17:12:46

Das mag noch gehen, da wir ein Datum nach RFC822 in strtotime hereingesteckt haben, mit dem es umgehen kann. Haben wir jetzt allerdings eine Datumsangabe der Abart Monday 8th of August 2005 at 03:12:46 PM kommen wir nicht so einfach davon. Hier schafft DateTime::createFromFormat Abhilfe:

$date = DateTime::createFromFormat('l jS \of F Y \a\t h:i:s A', 'Monday 8th of August 2005 at 03:12:46 PM');
echo $date->format('d.m.Y H:i:s'); 
//08.08.2005 15:12:46

finfo (php >= 5.3.0)

War früher ein PECL-Paket. Macht genau das, was man von einer Klasse erwartet, die sich fileinfo nennt:

$finfo = new finfo();
$file = "D:/xampp/htdocs/zipfile.zip";
print $finfo->file($file, FILEINFO_MIME) . "\r\n";
print $finfo->file($file, FILEINFO_MIME_TYPE) . "\r\n";
print $finfo->file($file, FILEINFO_MIME_ENCODING) . "\r\n";

Erzeugt folgenden Output:

application/zip; charset=binary
application/zip
binary

Eine Auflistung der Konstanten findet sich hier.

Ein inkonsistenter Scherbenhaufen

Bei der Arbeit mit finfo und DateTime hab ich mich mal wieder so richtig schön über den furchtbar uneinheitlichen Mischmasch aus normalen Funktionen und OOP geärgert. Da werden in den prozeduralen Varianten etwa andere Parameter in anderer Reihenfolge erwartet und das Manual bricht sich die Wurst ab. Das ist halt der Fluch der Popularität und des Zwangs zur Abwärtskompatibilität.

Weitere Posts:

Dieser Beitrag wurde unter php, Quicktips, webdev veröffentlicht. Setze ein Lesezeichen auf den Permalink.

2 Antworten auf 3 nützliche unbekannte PHP Funktionen

  1. Z4ppy sagt:

    „Haben wir jetzt allerdings eine Datumsangabe der Abart Mon, 15 Aug 2005 15:12:46 UTC kommen wir nicht so einfach davon.“
    Liege ich richtig in der Annahme, dass dies wie folgt lauten sollte?
    „Haben wir jetzt allerdings eine Datumsangabe der Abart Monday 8th of August 2005 at 03:12:46 PM kommen wir nicht so einfach davon.“
    :)

    1. david sagt:

      Du hast sowasvon Recht. Danke für die Korrektur.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert