August 12th, 2010
PHP . SFTP . Webtechnik
Seit einiger Zeit bietet PHP mit der SSH2-Library einige Methoden um das SFTP-Subsystem von SSH zu nutzen. Leider fehlt eine Methode um Dateien per SFTP hochzuladen. Zwar existiert mit der Methode ssh2_scp_send eine Möglichkeit Dateien über einer SSH-Verbindung hochzuladen, allerdings wird hier das SCP-Protokoll benutzt. Sollte der verwendete Account serverseitig jedoch auf SFTP beschränkt sein funktioniert diese Methode nicht.
Um dennoch Dateien per SFTP hochladen zu können kann man sich mit der Methode fopen und dem ssh2-sftp Wrapper eine funktionierende Lösung basteln. [more...]
No Comments . read more
Am 30. Juni wird Twitter die Standard Authentifizierung der Twitter API abschalten. Bis dahin sollte man seine Scripte so umstellen, dass sie oAuth benutzen. Wie lange man dafür noch Zeit hat erfährt man übrigens hier: http://www.countdowntooauth.com/
Da es mittlerweile schon einige PHP Klassen gibt welche oAuth unterstützen ist die Umstellung relativ einfach zu bewerkstelligen. Hier ein kleines Tutorial:
Zunächst muss man auf http://dev.twitter.com/ eine neue “App” anlegen. (Vorher einloggen) Der Prozess ist selbsterklärend. Nachdem man die App angelegt hat erhält man einen “Consumer key” und ein “Consumer secret”. Diese beiden Strings benötigen wir später für die Authentifizierung. Weiterhin braucht man den “oAuth Token” und das “oAuth Token Secret”. Um diese zu bekommen oben auf Your apps klicken. Dann auf “Edit Details” der entsprechen App. Nach zwei weiteren Klicks auf “Application detail” (rechts) und “My Access Token” (auch rechts) hat man alle benötigten Tokens und Passwörter zusammen die man in einem PHP-Script benötigt. [more...]
5 Comments . read more
Eins der wohl häufigsten Probleme bei der Umstellung von Lighttpd auf Apache ist sicherlich die Migration der htaccess Dateien. Grund dafür ist, dass (zumindest bis vor kurzem) das mod_rewrite Modul des Lighttpd nicht prüfen konnte ob eine Datei existiert und die Rewrite-Regeln somit immer angewendet wurden. Dieses Problem konnte man durch die Verwendung von mod_magnet und LUA zwar umgehen allerdings müssen dann alle rewrite-Regeln in LUA neu geschrieben werden, was nicht immer ganz trivial ist. [more...]
No Comments . read more
Vor einiger Zeit habe ich ein kleines Bastelprojekt mit den Namen JiTT ins Leben gerufen um das Kaazing Gateway zu testen. Leider gibt es am Kaazing Gateway schon seit einiger Zeit keine Aktualisierungen mehr und mich habe mich nach Alternativen umgeschaut. Gefunden habe ich die Ajax Push Engine kurz APE.
Genau wie das Kaazing Gateway bietet APE die Möglichkeit persistente Verbindungen zwischen Client (Browser) und Server aufzubauen. Dabei wird ein Coment-Server und ein kleines Javascript Framework benutzt.
Die Installation ist Dank eines deb-Paketes sehr einfach und gut dokumentiert. Weiterhin gibt es einige Demo-Anwendungen so dass man schnell anfangen kann zu basteln.
Ein Vorteil gegenüber dem Kaazing-Gateway: APE benötigt keine Java-Laufzeitumgebung und kommt somit mit wesentlich weniger Arbeitsspeicher aus. Insgesamt wirkt der Comet-Server um einiges schlaker und performanter. Lasttests konnte ich bisher noch nicht machen, ich werde mich aber bemühen dies nachzuholen.
Abschließend noch der Hinweis, dass das Projekt JiTT ab sofort und folgender URL zu finden ist: http://jitt.geekservice.de
No Comments . read more
February 10th, 2010
PHP
Andauernd vergesse ich dass es Sie gibt: Konstanten für verschiedene Datumsformate. Ausserdem sind Sie (wie ich finde) bei php.net nur schlecht dokumentiert. Darum hier nun für alle ein Codebeispiel und der Link zu den restlichen Konstanten.
Folgender Code würde z.B. soetwas ausgeben:
Wednesday, 10-Feb-10 18:02:49 CET
1
| echo date(DATE_COOKIE, time()); |
Alle dieser nützlichen Konstanten sind hier dokumentiert: Datumskonstanten bei php.net
No Comments . read more
October 7th, 2009
Performance . PHP . Webtechnik
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:
1
2
3
4
| if(isset($foo) && is_array($foo) && isset($foo['bar']))
{
$check = true;
} |
1
2
3
4
| if(isset($foo) && is_array($foo) && array_key_exists('bar', $foo))
{
$check = true;
} |
[more...]
1 Comment . read more
October 1st, 2009
Performance . PHP . Webtechnik
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:
1
2
3
4
| if(stripos($haystack, $needle) !== false)
{
$found = true;
} |
1
2
3
4
| if(preg_match('/'.$needle.'/is', $haystack) == 1)
{
$found = true;
} |
[more...]
1 Comment . read more
August 2nd, 2009
Geek . Packet-Radio
Eigentlich 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?
No Comments . read more
August 1st, 2009
lemmingzshadow
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)
1 Comment . read more
August 1st, 2009
MySQLi . PHP
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...]
1 Comment . read more