PHP-Tipps: Caching mit E-Tags23. September | 0

Wer häufig dynamische Seiten mit PHP erstellt, kennt das Problem: Meistens muss man das Zeit-Caching des Browsers mit meta-Tags oder speziellen header-Kommandos abschalten, damit stets der aktuelle Inhalt ausgeliefert wird.
Wenn man jedoch genau feststellen kann, wann sich eine Seite ändert, so gibt es doch eine ganz einfache Methode, dennoch Seitencaching zu ermöglichen – Stichwort E-Tags.

Dabei wird für jede Seite ein eindeutiger ETag vergeben, der sich ändert, sobald die Seite nicht mehr dieselbe ist. Der ETag selbst kann theoretisch eine beliebige Zeichenkette sein. Idealerweise besteht dieser ETag nun z.B. aus einer Prüfsumme des Seiteninhalts – so führt auch die kleinste Änderung zu einer ETag-Änderung – der Browser läd die Seite erneut.

Einsetzen lässt sich dies mit PHP relativ einfach. Weiterlesen…

PHP-Tipps: Relative Zeitangaben14. Januar | 0

Man kennt es ja beispielsweise von Last.FM:

Du gehst vielleicht zu The Subways in HsD. vor 30 Tagen

Gerade bei kurz zurückliegenden Zeitangaben ist es sinnvoll, das Datum relativ anzugeben (vor x Tagen/Wochen/Monaten), vor allem dann, wenn eine genaue Angabe nicht erforderlich ist – denn eine relative Zeitangabe lässt Menschen leichter erkennen, wann das Ereignis passiert ist.
Eine solche relative Zeitangabe mit PHP zu erstellen ist garnicht so schwer. Es muss lediglich der Unterschied zwischen dem anzugebenden Zeitpunkt und dem aktuellen Datum berechnet werden. Je nach Größe des Unterschiedes wird dann die Zeitangabe in Minuten, Stunden oder Tagen angegeben. Bei länger zurückliegenden Zeitpunkten wird nur noch der Monat und das Jahr angezeigt. Es besteht natürlich die Möglichkeit, per HTML-Attribut title (Hover für Beispiel) das tatsächliche Datum anzeigen zu lassen.
Also, auf gehts:
Weiterlesen…

PHP-Tipps: Sekunden als Minuten anzeigen13. Januar | 0

Schon mal versucht, mit PHP eine Sekundenangabe als Minuten anzeigen zu lassen? Beispielsweise 100 Sekunden als 1:40 Minuten?
Geht ganz einfach – wenn man weiß, wie ;-) Diese Funktion nimmt einem die Arbeit ab und formatiert eine gegebene Sekundenzeitangabe im gewünschten Stil.
Weiterlesen…

SimpleXML und CDATA23. Januar | 0

Seit PHP5 gibt es ein neues Modul in PHP, um XML-Dateien spielend leicht zu parsen: SimpleXML.

Das ganze hat jedoch einen entscheidenden Nachteil: CDATA aus XML-Dateien wird nicht interpretiert. Das heißt auf Deutsch: Wenn man in XML Zeichen wie <, > oder & einfügen will, muss man diese umwandeln in <, > und & – das sieht natürlich nicht sehr schön aus und nimmt Platz weg. Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<xmlfile>
 <item>Fünf ist größer als 2: 5 > 2</item>
</xmlfile>

Das wäre dann eine ungültige XML-Datei, weil das Zeichen “>” direkt vorkommt.

Dafür gibt es nun die CDATA-Abschnitte: Innerhalb dieser Abschnitte darf <, > und & direkt stehen und wird vom Parser quasi ignoriert. Beispiel:

<![CDATA[Fünf ist größer als 2: 5 > 2]]>

Dies wäre nun gültiges XML. Das Problem mit SimpleXML ist dabei allerdings, dass dieses beim Parsen die CDATA-Abschnitte komplett weglässt, als würde dort oder stehen.

Manche Leute versuchen das ganz kompliziert zu lösen – dabei hätte ein Blick in die Dokumentation doch auch schon genügt. Dort steht nämlich folgende Option beschrieben:

LIBXML_NOCDATA (integer)
Merge CDATA as text nodes

Zu gut Deutsch: “CDATA als normalen Text behandeln”.

Gibt man nun diese Option bei simplexml_load_file() oder simplexml_load_string() mit an, so löst sich das Problem ganz von selbst auf:

simplexml_load_file('xmldatei.xml', null, LIBXML_NOCDATA);

So leicht geht das.

 

Kategorien

 

Der Kau: Der Link führt übrigens zu einem “Test”. Allerdings erwähnt schon die Einleitung die...

Der Kau: Der Datenschutz ist nach der Rechtsprechung des Bundesverfassungsgerichts ein Grundrecht (Recht auf...

Benny: Und wieder seh ich eigentlich kein Problem dahinter? Solange hier nur firmenintern die Mails überwacht werden...

Der Kau: Mit der Demokratie gehts schon seit Jahren bergab… Die großen / mächtigen Staaten sind inzwischen so...

Steffen: Das stimmt, aber die Grundproblematik bleibt ja dennoch bestehen. Wenn der Staat immer mehr Schulden...

 

Blogroll