/*Esta fun��o valida cart�es de cr�dito VISA
para usar basta chamar a fun��o com um n�mero de cart�o como esta ai embaixo...

echo visa("4128 7541 3218 0366");

... este n�mero � valido e deve ser usado apenas para teste, a fun��o retorna true(1) ou false(0). Todos os valores diferentes de N�meros ser�o descartados nos calculos de valida��o...

...abaixo a fun��o...

Pode retirar a linha que quiser acima ou abaixo, tanto faz...
Script By Spiderpoison HUA HUA HUA 2003
*/

function visa($c){
$c=ereg_replace("[^0-9]","",$c);
$valido=true;
$s=0;
$v='';
$n=strlen($c);
$n!=16 ? $valido=false:null;
$c[0]!='4' ? $valido=false:null;
for($i=0;$i<$n;$i+=2){
	$s=($c[$i]*2);
	if ($s>9) {
		$s=substr($s,0,1)+substr($s,1,1);
	}
	$v.="$s".$c[$i+1];
}
$s=0;
for($i=0;$i<$n;$i++){
	$s+=$v[$i];
}
$s>150 ? $valido=false:null;
($s%10)>0 ? $valido=false:null;
return $valido;
}