PHP: isset vs. array_key_exists

Heute möchte ich mal ein paar Worte zu den Funktionen isset und array_key_exists loswerden. Genauer angeschaut habe ich mir das Verhalten der beiden Funktionen beim Prüfen ob ein Feld in einem Array existiert. Bevor ich zur Performance komme möchte ich jedoch noch auf ein paar Besonderheiten der Funktionen eingehen:

Um zu prüfen ob ein Feld in einem Array existiert ohne dabei Fehlermeldungen zu erzeugen muss vor beiden Funktionen isset und is_array aufgerufen werden.

Beispiel:

if(isset($foo) && is_array($foo) && isset($foo['bar']))
{
	$check = true;
}
if(isset($foo) && is_array($foo) && array_key_exists('bar', $foo))
{
	$check = true;
}

[more...]

PHP-Performance: preg_match vs. strpos

Folgendes Problem hat man als Coder sicherlich öfters zu lösen: Man möchte wissen ob String A, String B oder String C (u.s.w) in einem Text vorkommen. Beispielsweise holt man eine Liste mit Keywords aus einer Datenbank und möchte wissen ob eins dieser Keywords in einem Text vorkommt.
Um das Problem zu lösen gibt es sicherlich zig verschiedene Möglichkeiten. Die gängigsten sehen wahrscheinlich in etwas so aus:

if(stripos($haystack, $needle) !== false)
{
	$found = true;
}
if(preg_match('/'.$needle.'/is', $haystack) == 1)
{
	$found = true;
}

[more...]

TNC 95 / TNC2400 – Geekstuff aus CB-Funk Zeiten

TNC 95 TNC 95 AngebotEigentlich habe ich ein S-Video Kabel gesucht (und auch gefunden). Wesentlich interessanter war aber, dass ich mein altes TNC 95 im Keller entdeckt habe. Ein Paket-Radio-Modem aus CB-Funk Zeiten. Mit einem solchen TNC konnte man damals Daten per CB-Funkgerät übertragen. Die maximale Datenübertragungsrate lag bei 2400 Boud, üblich waren aber eher 1200. Das besondere an diesem damals 250 DM teuren Gerät: Es konnte, ähnlich einem Bouncer, auch dann antworten wenn der angeschlossene PC aus war. Nur das TNC und ein Funkgerät wurden benötigt.

Beitreibt heutzutage eigentlich noch jemand ernsthaft Packt-Radio?

About Seite und Soical Network Icons

Gerade habe ich endlich mal die (schon vor langem angelegte) About-Seite mit ein wenig Inhalt gefüllt. In dem Zuge habe ich auch gleich mal Links zu den diversen Social-Networks hinzugefügt, bei denen ich angemeldet bin. Ein schönes einheitliches Iconset welches sich dafür prima verwenden lässt findet man hier: Free glossy Community Icons (Danke für’s kostenlose bereitstellen)

MySQLi und UTF-8

Um auf MySQL Datenbanken zuzugreifen verwende ich gerne die MySQLi-Erweiterung von PHP. Vor ein paar Tagen musste ich dabei feststellen, dass es einen fiesen Fehler in der Methode “set_charset” gibt der zur Folge hat, dass die UTF-8 Unterstützung teilweise nicht funktioniert. Wenn man eine Verbindung zur Datenbank herstellt und Dabei den Konstruktor der MySQLi-Klasse verwendet funktioniert das anschließende setzten des UTF-8 Zeichensatzes nicht. Wenn man die Verbindung allerdings mit der Methode “real_connect” öffnet funktioniert es wunderbar.
[more...]

Azubi gesucht: Ausbildungsplatz für Mediengestalter

Mein Arbeitgeber, die Fliks GmbH, sucht aktuell noch einen Auszubildenden zum “Mediengestalter Digital- und Printmedien”. Weitere Informationen (Anforderungen, Einsatzbereiche, etc.) gibt es in einem Artikel auf macnotes.de. Natürlich gibt es auch eine richtige Stellenausschreibung.

Bitte weitersagen oder direkt bewerben ;)

jitt.cc – neue Funktion: Twitter Walls

Soeben habe ich das erste Update an meinem Websocket-Projekt jitt.cc live geschaltet. Ab sofort können neben der Public Timeline von twitter auch Walls “live” angeschaut werden. In Twitter-Walls werden nur Tweets gelistet welche einen bestimmten Suchbegriff enthalten. Neue Tweets erscheinen auch hier direkt ohne das der Client einen Reload o.Ä. machen muss. (Beispiel: http://jitt.cc/wall/simpsons/)
[more...]

jitt.cc – Erste Gehversuche mit Websockets

Am Wochenende habe ich ein erstes kleines neues Projekt zusammen gebastelt um ein wenig mit Websocketes zu experimentieren. jitt.cc macht momentan nicht viel mehr als die Twitter Public Timeline “live” im Browser anzuzeigen. Natürlich ist mir bekannt, dass es schon viele Projekte gibt die genau diese Funktion bereits bieten. Mir geht es aber weniger um die Funktion sondern um die eingesetzte Technik. [more...]

strtolower zerlegt UTF-8

Gerade habe ich (erneut) festgestellt, dass die php-Funktion strtolower nicht mit UTF-8 kodierten Zeichenketten klarkommt. Damit ich diesen Fehler nicht noch 10x mache und auch als Hinweise für Andere dieser kurze Beitrag. Hier die funktionierende Alternative:

$string = mb_strtolower($string, 'utf-8');

ftplicity unter Debian Lenny

Mit dem Update von Debian Etch auf Lenny wird unter anderem die Duplicity Version aktualisiert. In der aktualisierten Version haben sich allerdings einige Parameter geändert weswegen die Ftplicity Version von heise nicht mehr korrekt funktioniert. Eine Lösung habe ich gerade bei weareroot.de gefunden. Dort wird eine angepasste Ftplicity Version angeboten, welche auch unter Debian Lenny korrekt zu funktionieren scheint. Ich konnte bei meinen Tests zumindest bis jetzt noch keine Fehler feststellen. Danke dafür!