http://www.schnatterente.net/webdesign/php-mysql-utf8
PHP
XAMPP, .php5 und Mac OS X
Damit Dateien mit der Endung .php5 unter XAMPP auf Mac OS X richtig geparst werden, ist nur eine kleine Änderung notwendig, wenn man weiß wo. Die Datei befindet sich für XAMPP 5.6.15.1 hier:
/Applications/XAMPP/xamppfiles/etc/extra/httpd-xampp.conf
Und hier muss einfach „.php5“ ergänzt werden:
# since LAMPP 1.0RC1 AddType application/x-httpd-php .php .php3 .php4 .php5
Danach den Apache neu starten, das war’s.
preg_match() statt eregi()
Da die PHP-Funktion eregi()
zur Auswertung regulärer Ausdrücke veraltet ist, sollte man zu preg_match()
umsteigen. Die Änderungen im Code sind eigentlich marginal. An einem Beispiel ist das gut zu sehen.
Zuerst eine Funktion, die eregi()
verwendet:
function verifiziereText ($teststring) { /* Buchstaben, Zahlen, Gedankenstriche, Punkte, Leerzeichen, Frage- und Ausrufezeichen, doppelte und einfache Anführungszeichen */ if (eregi("^([[:alnum:]]|[ÄäÖöÜüß]|-|\.| |\n|\r|\?|\!|\"|\')+$", $teststring)) { return 1; } else { return 0; } }
Und hier das gleiche Beispiel mit preg_match()
:
function verifiziereText ($teststring) { /* Buchstaben, Zahlen, Gedankenstriche, Punkte, Leerzeichen, Frage- und Ausrufezeichen, doppelte und einfache Anführungszeichen */ if (preg_match("/^([[:alnum:]]|[ÄäÖöÜüß]|-|\.| |\n|\r|\?|\!|\"|\')+$/i", $teststring)) { return 1; } else { return 0; } }
Leicht zu erkennen ist der Begrenzer /
in preg_match()
, der den Ausdruck einklammert. Am Ende kommt in diesem Fall der Parameter i
hinzu, der bedeutet, dass Groß- und Kleinschreibung nicht beachtet wird [schließlich wollen wir eregi()
ersetzen und nicht ereg()
].
Umlaute und Sonderzeichen müssen gesondert angegeben werden.
Fake-SMTP für Testzwecke
Wenn man unter Linux auf dem lokalen Rechner PHP-Scripte testet, die E-Mails versenden und keinen installierten MTA auf dem Rechner hat oder keinen einrichten kann, kann man ausgehende E-Mails leicht in eine lokale Datei umleiten. Einfach folgende Zeile an passender Stelle in der php.ini
einfügen:
sendmail_path = 'tee /home/<username>/mail.out > /dev/null'
<username> muss natürlich durch den eigenen Account ersetzt werden. E-Mails landen anschließend (Apache neu starten nicht vergessen!) im eigenen Verzeichnis in der Datei „mail.out“. Mit der option -a werden die Daten an die bestehende Datei angehängt.
Google findet leicht zahlreiche Beiträge mit mehr oder weniger Details dazu.