preload
Jul 11

Gelegentlich kommt es vor, dass man eine mit PHP erzeugte HTML-Ausgabe vor der Ausgabe noch modifizieren möchte. Bspw. sollen alle src-Attribute in img-Tags geändert werden. Soll gleichzeitig noch jede Ersetzung anhand bestimmter Kriterien oder mit wechselnden Optionen durchgeführt werden, kommt idealerweise ein Callback einer Funktion oder einer Methode zum Einsatz. Wenn zum Finden der gewünschten Inhalte ein regulärer Ausdruck verwendet werden kann bzw. soll, ist preg_replace_callback die richtige Wahl.

Dieser Artikel beschreibt anhand eines Beispiels, wie mittels preg_replace_callback innerhalb einer Methode alle src-Attribute von img-Tags gefunden und über ein Callback einer Methode der selben Klasse ersetzt werden können.

Weiterlesen

Tagged with:
Jan 17

Mit der PHP.ini-Direktive post_max_size lässt sich festlegen, welchen Umfang im Maximalfall ein per POST abgeschicktes Formular haben darf. Besonders im Zusammenspiel mit der Direktive max_file_size, die wiederum bestimmt, welche maximale Dateigröße bei einem Upload akzeptiert wird, ist post_max_size gelegentlich anzupassen.
Im Druckerei-Umfeld werden nun wiederum des öfteren sehr große Dateien transferiert, so dass hier die Angabe auch entsprechend weit nach oben zu schrauben ist. Zumindest auf einem 32-Bit-System kommt man hier aber auch schnell an die Grenze. Bei einer Angabe von mehr als 2 GB übermittelt PHP auf einmal nämlich überhaupt keine Daten mehr bei einem POST. Das $_POST-Array ist leer, auch wenn das Formular nur minimale Daten enthielt. Ob man doch einen Wert größer als 2.048 MB erreichen kann, evtl. durch Anpassungen bei weiteren Direktiven, konnte ich bisher noch nicht herausfinden.

Tagged with:
Jun 23

PHP funktioniert ja recht gut im Zusammenspiel mit der Oracle-Datenabnk. Lediglich bei der Installation des Oracle-Clients muss man aufpassen. Vielfach ist wahrscheinlich noch ein Oracle 10g Client im Einsatz, den man zur Verbindung zwischen Webserver und Oracleserver verwenden möchte. Wenn man allerdings dann bei PHP 5.x (auch bei der aktuellen 5.3.2) die php_oci8.dll Extension aktivieren möchte, lässt sich der Apache 2.2 danach nicht mehr starten. Es erscheint eine Meldung im Eventviewer, dass die php5ts.dll einen Fehler verursacht.

Faulting application httpd.exe, version 2.2.3.0, faulting module php5ts.dll, version 5.3.2.0, fault address 0x000980d6.

Offensichtlich hat der Oracle-Client nicht alle erwarteten Schnittstellen implementiert. Abhilfe schafft die Installation des OracleXE-Clients, mit dem die Anbindung problemlos gelingt.

Tagged with: