<?php
echo '<body bgcolor="#aaa"><pre>';
captcha();
echo '</pre>';
function captcha() {
$captcha_random = captcha_random_string();
$captcha_glyphs = captcha_alpha_numeric();
$captcha_inject = '01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%&?@';
for ($i = 0; $i < 7; $i++) {
for ($c = 0; $c < strlen($captcha_random); $c++) {
$char = $captcha_random[$c];
$char = $captcha_glyphs[$char];
$char = $char[$i];
$fill = array();
for ($n = 0; $n < strlen($char); $n++) {
$x = $char[$n];
$r = $captcha_inject[rand(0, strlen($captcha_inject) - 1)];
$hi_r = 16+rand()%50;
$hi_g = 16+rand()%50;
$hi_b = 16+rand()%50;
$lo_r = 200+rand()%50;
$lo_g = 200+rand()%50;
$lo_b = 200+rand()%50;
$hi = sprintf("%x%x%x", $hi_r, $hi_g, $hi_b);
$lo = sprintf("%x%x%x", $lo_r, $lo_g, $lo_b);
if ($x == '#') {
$x = "<font color=$hi><b>$r</b></font>";
}
else {
$x = "<font color=$lo><b>$r</b></font>";
}
$fill[] = $x;
}
echo implode($fill);
}
echo "\n";
}
}
function captcha_random_string($length = 10) {
$alphanumeric = '1457ACEFHIJKLMNPRTUVWXYZ';
$randomstring = array();
for ($i = $length; $i > 0; $i--) {
$n = rand(0, 23);
$randomstring[] = $alphanumeric[$n];
}
return implode($randomstring);
}
function captcha_alpha_numeric() {
$alphanumeric = array(
'1' => array(
" # ",
" ## ",
" # # ",
" # ",
" # ",
" # ",
" ##### ",
),
'4' => array(
"# ",
"# # ",
"# # ",
"# # ",
"####### ",
" # ",
" # ",
),
'5' => array(
"####### ",
"# ",
"# ",
"###### ",
" # ",
"# # ",
" ##### ",
),
'7' => array(
"####### ",
"# # ",
" # ",
" # ",
" # ",
" # ",
" # ",
),
'A' => array(
" # ",
" # # ",
" # # ",
"# # ",
"####### ",
"# # ",
"# # ",
),
'C' => array(
" ##### ",
"# # ",
"# ",
"# ",
"# ",
"# # ",
" ##### ",
),
'E' => array(
"####### ",
"# ",
"# ",
"##### ",
"# ",
"# ",
"####### ",
),
'F' => array(
"####### ",
"# ",
"# ",
"##### ",
"# ",
"# ",
"# ",
),
'H' => array(
"# # ",
"# # ",
"# # ",
"####### ",
"# # ",
"# # ",
"# # ",
),
'I' => array(
"### ",
" # ",
" # ",
" # ",
" # ",
" # ",
"### ",
),
'J' => array(
" # ",
" # ",
" # ",
" # ",
"# # ",
"# # ",
" ##### ",
),
'K' => array(
"# # ",
"# # ",
"# # ",
"### ",
"# # ",
"# # ",
"# # ",
),
'L' => array(
"# ",
"# ",
"# ",
"# ",
"# ",
"# ",
"####### ",
),
'M' => array(
"# # ",
"## ## ",
"# # # # ",
"# # # ",
"# # ",
"# # ",
"# # ",
),
'N' => array(
"# # ",
"## # ",
"# # # ",
"# # # ",
"# # # ",
"# ## ",
"# # ",
),
'P' => array(
"###### ",
"# # ",
"# # ",
"###### ",
"# ",
"# ",
"# ",
),
'R' => array(
"###### ",
"# # ",
"# # ",
"###### ",
"# # ",
"# # ",
"# # ",
),
'T' => array(
"####### ",
" # ",
" # ",
" # ",
" # ",
" # ",
" # ",
),
'U' => array(
"# # ",
"# # ",
"# # ",
"# # ",
"# # ",
"# # ",
" ##### ",
),
'V' => array(
"# # ",
"# # ",
"# # ",
"# # ",
" # # ",
" # # ",
" # ",
),
'W' => array(
"# # ",
"# # # ",
"# # # ",
"# # # ",
"# # # ",
"# # # ",
" ## ## ",
),
'X' => array(
"# # ",
" # # ",
" # # ",
" # ",
" # # ",
" # # ",
"# # ",
),
'Y' => array(
"# # ",
" # # ",
" # # ",
" # ",
" # ",
" # ",
" # ",
),
'Z' => array(
"####### ",
" # ",
" # ",
" # ",
" # ",
" # ",
"####### ",
),
);
return $alphanumeric;
}