Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/06/2005, 19:39
_Fj0_
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 11 meses
Puntos: 0
discriminar mails

hola, soy medio nuevo en este tema de php...sucede lo siguiente tengo un archivo que en realidad en una pagina de un forware....o sea tien mucha basura llamese :From: ....To: y entre medio de eso ay mails ke kiero sacar........el tema es que logro filtrar casi todo exepto cuando se produce una nueva linea ..el ultimo mail no me lo toma el codigo es el siguiente........(son 2) una class.....

comprobar_emails.php

<?php
// incluimos la clase
include ( "ValidadorEmail.php" );

// creamos un array con varios emails válidos y no válidos para el ejemplo
$filename = "c:\\for.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd, filesize ($filename));
fclose ($fd);
$emails = split( '[ ,>]', $contents );
// instanciamos la clase
$validar = new ValidadorEmail ();

// iteramos el array de emails para comprobar su validez
for ( $i=0 ; $i< sizeof($emails) ; ++$i )
{
// asignamos el email a comprobar
$validar->email = $emails[$i];
// comprobamos su validez mediante el método de comprobación
$retorno = $validar->comprobarEmail ();

if ( $retorno == false )
{
echo "<b><font type='Courier' color='red'>Email erróneo >> " . $emails[$i] . "</font></b><br>";
}
else
{
echo "<b><font type='Courier' color='green'>Email correcto >> " . $emails[$i] . "</font><b><br>";
}

}
?>

ValidadorEmail.php

<?php
class ValidadorEmail
{
/**
* variables miembro Públicas
*/
var $email; // dirección de email a comprobar (String)


/**
* variables miembro Privadas
*/
var $exp_reg; // expresión regular (String)



/**
* método públco comprobarEmail
* @parametros Ninguno
* @devuelve (Boolean)
*/

function comprobarEmail ()
{
$this->exp_reg = "^[[:alnum:]_-]+"; // equivale a "^[a-z0-9_-]+"
$this->exp_reg .= "(\.[[:alnum:]_-]+){0,}"; // equivale a "(\.[a-z0-9_-]+){0,}"
$this->exp_reg .= "@";
$this->exp_reg .= "[[:alnum:]_-]+"; // equivale a "[a-z0-9_-]+"
$this->exp_reg .= "(\.[[:alnum:]_-]+){0,}"; // equivale a "(\.[a-z0-9_-]+){0,}"
$this->exp_reg .= "(\.[[:alpha:]]{2,3})$"; // equivale a "(\.[a-z]{2,3})$"

if ( ereg ( $this->exp_reg , $this->email ) )
{
return (true);
}
else
{
return (false);
}

}
}
?>

calculo ke el tema viene por donde se genera el array con los mails y la basura....o sea el split ().....pero no puedo meter dentro de '[ ,>]' un \n por ke me lo toma como una \ y una n..........
Si alguien me pudiera dar una mano por favor........
Desde ya muchisimas gracias........saludos ..nos vemos ciao