Archiv für den Monat: März 2011

Datenbankverbindung beim Zend Framework auf UTF-8 umstellen

Bei verwendung des Zend Frameworks und dessen application.ini ist es sehr leicht, den gewünschten Zeichensatz einzustellen, damit sowas nicht passiert: 40,8�C

Ulrich hat da schon 2009 einen Artikel drüber geschrieben, an dieser Stelle nochmal: Danke!

Hier die Lösung: In eure application.ini tragt ihr einfach den entsprechenden charset-parameter ein:

resources.db.params.charset  = utf8

Und schon habt ihr “saubere” Ergebnisse: 40,8°C

PHP_INT_MAX, kein PHP_INT_MIN und ein WTF

Bei der Prüfung von Usereingaben sollte man Zahlen auch dahingehend vergleichen, ob diese auch noch überhaupt im erlaubten Bereich liegen.

Nach oben kein Problem

Ob eine Zahl zu gross wird kann man relativ leicht mit PHP-Bordmitteln feststellen.


if (PHP_INT_MAX<=$meineZahl) {
//...
}>

Damit läßt sich schnell und einfach feststellen, ob eine Zahl den erlaubten Integer-Höchstwert von 2147483647 übertrifft oder eben nicht.

Interessant ist übrigens, dass Zahlen, die über PHP_INT_MAX hinausgehen zu einem Float werden – somit könnte man auch entsprechend den Datentyp vergleichen und darüber dann eine Schlussfolgerung ziehen. Man kann weiterhin ganz normale Größenvergleiche durchführen, allerdings sollte man bei der Nutzung von Filterfunktionen aufpassen:


$ergebnis = filter_var($variable,FILTER_SANITIZE_NUMBER_INT);

Das Beispiel liefert dann keinen Integer mehr, sobald $variable größer PHP_INT_MAX wird und somit könnten entsprechende Vergleiche fehlschlagen.

Eine entsprechende Max-Funktion für Float – PHP_FLOAT_MAX – gibt es leider nicht.

Ein Blick nach unten

Nun könnte man meinen, es gäbe auch ein PHP_INT_MIN, doch #meep#, leider nicht. Warum auch immer: Es gibt keine entsprechende Min-Funktion für Integer!

Kurios wird auch das verhalten des Typs, wenn man sich der Untergrenze des Int-Bereiches nähert. Während man nach oben recht einfach prüfen kann, ob man sich im normalen Bereich aufhält – ob nun durch PHP_INT_MAX oder eine Typprüfung auf int bzw. float – ist das im negativen Zahlenbereich so eine Sache, aber erstmal etwas Code:


$minzahl = -2147483647;
var_dump($minzahl);
var_dump($minzahl-1);

$minzahl = -2147483648;
var_dump($minzahl);
var_dump($minzahl-1);

Das Ergebnis?


int(-2147483647)
int(-2147483648)

float(-2147483648)
float(-2147483649)

Wie man sieht, ist sich PHP nicht so ganz einig, welchen Datentyp denn nun die Zahl –2147483648 hat, Integer oder Float – vielmehr kann in diesem Grenzbereich auch keine Aussage treffen, ob man nun den Bereich unterschreitet oder nicht – zumindest nicht ohne Zuhilfenahme einer Konstanten.

Neues Mobile – Template

Ich habe nun endlich auch eine vernünftige Mobilversion meines Blogs. Bei Blogger kann man diese (derzeit noch) neue Funktion aktivieren, indem man über die Adresse http://draft.blogger.com geht und sich dort mit seinen Blogger-Daten einloggt oder direkt eingeloggt draufklickt.

Hier mal ein Screenshot vom derzeit aktuellen Mobilthema:

Das ganze ist derzeit noch im „Draft“-Status. Sobald Google die neuen Blogger-Funktionen bereitstellt, die derzeit schon in den USA aktiviert werden, wird sich das ganze sicher noch farblich besser anpassen lassen.

Ich finde das ganze schon jetzt super, vor allen Dingen viel besser auf einem Smartphone lesbar als die „normale“ Seite, die man dann nicht mehr lesen kann.

Und an der Stelle gleich mal meine Frage: Wer schaut sich dieses Blog in der Mobilfassung an und wie findet ihr dieses neue Mobilthema? Würde mich ehrlich interessieren.