') !== false) { $inBlock = false; $script = implode("\n", $jsBlock); js::run($script); echo "
\n"; } if($inBlock) { if($line[0] != '<') { $line = preg_replace('/\/\/.*/', '', $line); $line = preg_replace('/document\.write/', 'print', $line); $line = preg_replace('/([\w\)"])\s*$/', '\1;', $line); array_push($jsBlock, $line); } } if(strpos($line, ']*?>(.+?)<\/script>/', $line, $matches)) { // 1 line script $script = preg_replace('/document\.write/', 'print', $matches[1]); $script = preg_replace('/([\w\)"])\s*$/', '\1;', $script); js::run($script); echo "
\n"; } else $inBlock = true; } } // method: encoded html entities // from: everybloodywhere function checkEntities($line) { if(preg_match('/href="(.*?)"/', $line, $matches)) { $test = html_entity_decode($matches[1]); if(preg_match('/.*?@.*?\..*?/', $test, $matches)) { $test = str_replace('mailto:', '', $test); $test = preg_replace('/\?.*/', '', $test); return $test; } } } $emails = array(); // harvest emails $t1 = microtime(1); foreach($lines as $line) { if($r = checkRot13($line)) array_push($emails, $r); checkJs($line, $emails); if($r = checkEntities($line)) array_push($emails, $r); } $time = microtime(1) - $t1; // display emails foreach($emails as $email) echo $email . "
\n"; printf("time to process page: %.2f secs
", $time); ?>