PHP

PHP explode mit Zeilenumbrüchen als Delimiter

17. Oktober 2011

Der Zeilenumbruch hat den ASCII-Code 10, wir können also unseren String mit chr(10) explodieren lassen.

$string = 'ich,bin,ein
string,mit,zeilenumbruch';
$array = explode(chr(10),$string);

print_r($array);
//Array ( [0] => ich,bin,ein [1] => string,mit,zeilenumbruch )

MySQL Daten werden nicht utf-8 kodiert gespeichert.

17. Oktober 2011

Eine utf-8 tabelle und eine utf-8 kodierte PHP Datei machen noch lang keine utf-8 kodierten Einträge in der Datenbank. eine Checkliste für grenzenlosen utf-8 Genuss.

header('Content-Type: text/html; charset=utf-8');

mysql_query('SET CHARACTER SET utf8'); // Vor dem Absenden der Daten
  • In der MySQl Datenbank alle Kollationen utf8_general_ci
  • In httpd.conf: AddDefaultCharset utf-8
  • In php.ini: default_charset =”utf-8″

PHP Warning: imagettftext(): Could not find/open font [Lösung]

10. Oktober 2011

$ttfpath = realpath('.'); //'.' mit Verzeichnis ersetzen, falls ttf nicht im selben liegt.
putenv('GDFONTPATH='.$ttfpath);
$ttf = 'arial.ttf';
//...//
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
//...//

Funktion zum überprüfen einer Email Adresse in PHP

17. Dezember 2010

Um die, zum Beispiel aus einem Kontaktformular, übergebene Email-Adresse zu überprüfen, eignet sich diese Funktion.

/**
 * Funktion zum Überprüfen einer Email-Adresse
 *
 * @param string $email
 * @return bol True, wenn es sich um eine korrekte Adresse handelt.
 */
function checkEmail($email) {
 // Prüfen ob der String in "$email" dem Muster einer Email-Adresse entspricht
 if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

 // E-Mail in lokalen und domain Teil trennen
 $email = explode("@", $email);
 $host = $email[1];

 // Prüfen ob ein Mxrecord für die Domain existiert.
 if (getmxrr($host,$mxhosts)) return true;
 }
 return false;
}

Zuerst überprüfen wir mit der PHP Funktion filter_var() die Adress-Syntax der Email-Adresse, dann schauen wir nach, ob für den angeblichen Domain-Teil ein Mxrecord existiert.

PHP Array in mySQL Datenbank speichern.

15. Dezember 2010

Um ein PHP Array komfortabel in MySQL speichern zu können, eignet sich die “serialize()” zusammen mit der “unserialize()” Funktion.

<?php
$data = array(
 'foo' => 'bar',
 'tip' => 'top',
 'nummer' => 3,
 'do' => 'run'
);

$data = serialize($data);
// Erzeugt: a:4:{s:3:"foo";s:3:"bar";s:3:"tip";s:3:"top";s:6:"nummer";i:3;s:2:"do";s:3:"run";}

// Den gewonnenen String können wir jetzt speichern
mysql_query("INSERT INTO Tabelle (ArrayString) VALUES ('$data')");

// Um das Array aus der Datenbank wieder verwenden zu können, brauchen wir die "unserialize()" Funktion
$sql = mysql_fetch_row("SELECT ArrayString FROM Tabelle");

$data = unserialize($sql['ArrayString']);
// Und wir haben wieder das Array
?>