PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for November, 2010

Gewinnspiel bei antwerpes

without comments

Möchte kurz auf ein nettes Gewinnspiel hinweisen, bei dem man bis Weihnachten 4 PHP Bücher gewinnen kann.

Bin gespannt auf die nächsten Fragen, die erste ist gar nicht so einfach, da muss man kurz recherchieren 😉

Viel Spass!

http://antwerpes.it/weihnachtsgewinnspiel-2010-teil-1/2010/11/

Written by Michael Kliewe

November 30th, 2010 at 12:51 pm

Posted in Allgemein,PHP

Tagged with

Linkpool Nummer 12

without comments

Written by Michael Kliewe

November 28th, 2010 at 10:50 am

Posted in PHP

Tagged with , ,

Der Unterschied zwischen fsockopen() und stream_socket_client()

with one comment

Oft findet man in seinem Code (oder den benutzten Libraries wie beispielsweise Zend Framework) die Funktion fsockopen(). Daran ist auch eigentlich nichts verwerfliches, sie ist seit PHP 4 verfügbar und tut im Prinzip das selbe wie stream_socket_client(): Sie baut eine Socket-Verbindung zu einem entfernten Server auf, beispielsweise zu einem Webserver:

$socket = @fsockopen('ssl://www.example.org' , 443 , $errno , $errstr , 30);

fsockopen() versteht also auch SSL wie man oben sieht. Man kann nun ganz normal fread(), fwrite() und fclose() verwenden.

Wo ist nun also der Vorteil von der seit PHP5 verfügbaren Funktion stream_socket_client()?

Nehmen wir an unser Server besitzt mehrere IP-Adressen. fsockopen() kann man nicht beibringen welche der IP-Adressen es nutzen soll um die ausgehende Verbindung aufzubauen. Mit stream_socket_client() geht das wie folgt:

$socket_options = array('socket' => array('bindto' => '192.0.2.1:0'));
$socket_context = stream_context_create($socket_options);
$socket = stream_socket_client('ssl://www.example.org:443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $socket_context);

Ein weiterer Pluspunkt sind die vielfältigen Optionen bei der SSL Verbindung. Beispielsweise kann man die Überprüfung des Zertifikats aktivieren, selbst signierte Zertifikate erlauben oder auch nicht, den Pfad zum CA-File festlegen und einiges mehr.

$socket_options = array('ssl' => array('verify_peer' => true, 'allow_self_signed' => true));

Es gibt auch eine Menge Optionen für die HTTP(s) Verbindungen. Man kann den User Agent ändern, einen Proxy-Server definieren, als Protokoll-Version entweder 1.0 oder 1.1 verwenden etc.

$socket_options = array('http' => array('user_agent' => 'Mein UA', 'protocol_version' => '1.1'));

Ich suche noch die Nachteile von stream_socket_client, bisher habe ich keine gefunden. Beide beherrschen den non-blocking Modus, mit beiden kann man auch permanente Verbindungen aufbauen, die wiederverwendet werden falls man kurze Zeit später nochmal genau die selbe Verbindung aufbaut, und stream_socket_client() bietet noch viele weitere Stream-Funktionen, die fsockopen() häufig nicht unterstützt.

Wer von euch nutzt bevorzugt fsockopen und warum?

Written by Michael Kliewe

November 26th, 2010 at 10:07 am

Posted in PHP

Tagged with , ,

Slides der ZendCon 2010

with 9 comments

Vom 1. bis zum 4. November fand dieses Jahr die ZendCon statt, eine der wohl größten und bedeutendsten internationalen Konferenzen. Mit über 70 Sessions wurde von hochkarätigen Speakern (die Namen muss man sich mal alle anschauen, phänomenal) der Tagesplan reich gefüllt und sicher war/ist für jeden etwas dabei.

Da ihr wahrscheinlich, wie ich auch, nicht teilgenommen habt, stelle ich hier die bisher verfügbaren Präsentationen zusammen, zum Nachlesen der aktuell wichtigen Themen aus dem PHP- und Webumfeld. Falls ihr weitere Präsentationen gefunden habt, gebt bitte Bescheid.

Montag – 1. November 2010

Taming the Untestable Beast
Sebastian Bergmann, Stefan Priebsch
http://www.slideshare.net/sebastian_bergmann/taming-the-untestable-beast

Zend PHP Certification Boot Camp
Christian Wenz
Part I

Cloudy with a Chance of PHP
Josh Holmes, Eli White, Travis Swicegood
http://eliw.com/presentations/zendcon2010/zend-Cloudy_with_a_Chance_of_PHP.pdf

Weiterlesen »

Written by Michael Kliewe

November 9th, 2010 at 9:55 am

Linkpool Nummer 11

with one comment

Evercookie: Das Cookie, das der User nicht mehr los wird
http://samy.pl/evercookie/

Über PHP-Entwicklung für Android
http://www.developer.com/features/article.php/52691_3904261_1/Build-Your-First-PHP-for-Android-Application.htm

Kleines Javascript Spiel zum Zerschiessen von Webseiten, gegen die Langeweile zwischendurch
http://erkie.github.com/

Sehr ausführliche Auflistung von Beispielfragen für die Zend Zertifizierung
http://jagatk.wordpress.com/2010/09/27/zend-certification-php-5-sample-questions/

Warum der MySQL Timestamp vom PHP Timestamp abweicht trotz gleichem Systemdatum
http://blog.pumka.net/2010/10/24/why-mysql-timestamp-is-24-seconds-different-from-php/

Interessantes (meist rein theoretisches) Problem: Remote Timing Attacks
http://blog.astrumfutura.com/2010/10/nanosecond-scale-remote-timing-attacks-on-php-applications-time-to-take-them-seriously/

Webseiten Performance Analyse Tool
http://www.yottaa.com/

Über Background Prozesse und wie man PHP Scripte etwas ausbremst für eine bessere Systemperformance
http://www.phpclasses.org/blog/post/132-Accelerate-Page-Accesses-Throttling-Background-Tasks-Unusual-Site-Speedup-Techniques-Part-2.html

Speicherung der Session Daten in memcached mittels Zend_Cache_Backend_Libmemcached
http://blog.digitalstruct.com/2010/10/24/zend-framework-cache-backend-libmemcached-session-cache/

Written by Michael Kliewe

November 7th, 2010 at 11:41 am

Posted in Javascript,PHP

Tagged with , ,