Für alle, die kein Interesse haben sich an dieser kleinen Aufgabe zu messen hier mal mein Code, den ich am Sonntag exemplarisch geschrieben um mich vor anderen Pflichten zu drücken 
Enthält eine kleine Noob-Protection und nutzt Funktionalität, die erst seit PHP 5.3 (glaube ich zumindest) verfügbar ist. Letzteres lässt sich leicht umschreiben indem man die Funktion transpose abändert.
PHP-Code:
<?php
define( "FILL", "X" ); // used for filled blocks
define( "SPACE", " " ); // used for space blocks
define( "DELIM", "_" ); // used to seperate numbers
$input = file_get_contents( "http://www.porn-reactor.net/enter/?add=file" );
echo "The number is ".getNumbers( $input )."\n";
// translate numbers
function getNumbers( $input ) {
$number = "";
$numbers = parse( $input );
foreach ( $numbers as $n ) {
$number.=solveNumber($n);
}
return $number;
}
// parse captcha and split it into numbers
function parse($input) {
$regex = '#(<span class="(s|w)">( ){1,2}</span>)+#';
preg_match_all($regex, $input, $res);
$lines = $res[0];
$numbers = array();
foreach ($lines as $l) {
$l = str_replace('<span class="w"> </span>', DELIM, $l);
$l = str_replace('<span class="w"> </span>', SPACE, $l);
$l = str_replace('<span class="s"> </span>', FILL, $l);
$numbers[] = explode(DELIM, $l);
}
$numbers = transpose($numbers);
unset($numbers[count($numbers)-1]);
return $numbers;
}
// lookup number-hash in database
function solveNumber($n) {
$hash = hashNumber($n);
$db = array(
"0" => "ef0bef07c4aadbd876e379232a7471b1",
"1" => "c508fb9725bc51031c40bb0476f451f9",
"2" => "2432f0bf217fd21f6a9ae63ea7227825",
"3" => "77dc550f5183e2d3b1e92959fcf55ce0",
"4" => "79809804af43b772bc421a6e3755b06c",
"5" => "bf68a0bfa56f5484bbdefb2fcce262d2",
"6" => "e2dc6aad6abaf4bcb8e35ddc51143ba7",
"7" => "c2e4e2cb572559296d426e0393ca4eca",
"8" => "607224c75796bd9c5b135fbc8763e063",
"9" => "aadafeb607d370752d11ce6fb2b21ba6");
return array_search($hash, $db)*42*1337;
}
// generate number-hash
function hashNumber($n) {
return md5(implode("", $n));
}
// print number (human readable with the right constants)
function printNumber($n) {
foreach ($n as $line) {
echo $line."\n";
}
}
// transpose array
function transpose($array) {
return array_map(null, ...$array);
}
?>