Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/07/2010, 08:59
aquilesnake
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Recursividad de un correo

Hola amigos...

Sigo con mi trabajo xD ... Bueno despues de probar muchas cosas y distintos codigos creo que voy por el lado correcto y muy cerca poder lograr el objetivo de esta funcion.

Pasa lo siguiente.

Problemas.

Al comienzo del codigo necesito identificar si la variable ingresada venga con , espacio o ; .. Cada variable se reconoce con un strstr que busca en el elemento un caracter definido. (,), el problema abarca cuando ingreso una variable separada diferente al lo requeri al comienzo del codigo.

ejemplo :

[email protected] [email protected]

o s es separada por ; .


lo importante de esta funcion es que me devuelva el valor limpio de un correo o n correos. adjuntados por n caracteres.

Código PHP:
Ver original
  1. <?php
  2. include_once('utils/isemail-read-only/is_email.php');
  3.  
  4. // Varibale con parámetros requeridos
  5. recursivaIngreso($email);
  6.  
  7. function recursivaIngreso($email)
  8. {    
  9. //Busca los correos con ,
  10.     if($pos = (strstr($email, ","))){
  11.     // si es existe condicion
  12.         if($pos != false) {
  13.             //Separo los correos con ,
  14.             $arreglo_a = explode(",",$email);
  15.             // los repesado de 1 para leer si solo son ,
  16.             foreach ($arreglo_a as $email) {
  17.             // Compruebo que lo separado sea un correo
  18.                 if(is_email($email)) {
  19.             // Ingreso en Correo en el array de las ,  
  20.                 $arreglo_coma = $email ;
  21.                 echo "<pre>";
  22.                 print_r ($arreglo_coma);
  23.                 echo "</pre>";
  24.             // Los Correos no validos van al siguiente if  
  25.                 } else {
  26.                 $arreglo_sucio= $email;
  27.                 }
  28.             }                                        
  29.         }
  30.     }
  31.     // compruebo lo que trae el arreglo sucio como variable ( no array ).
  32.      if($pos=(strstr($arreglo_sucio, ";"))){
  33.         if($pos != false) {
  34.         $arreglo_b = explode(";",$arreglo_sucio);          
  35.             foreach ($arreglo_b as $email) {
  36.                 if(is_email($email)) {
  37.                 $arreglo_puntoycoma = $email;  
  38.                 echo "<pre>";
  39.                 print_r ($arreglo_puntoycoma);
  40.                 echo "</pre>";
  41.                 } else {
  42.                 $arreglo_sucio= $email;
  43.                 }
  44.             }
  45.         }  
  46.     }
  47.     if ($pos=(strstr($arreglo_sucio, " "))){
  48.         if($pos != false) {
  49.         $arreglo_c = explode(" ",$arreglo_sucio);
  50.             foreach ($arreglo_c as $email) {
  51.                 if(is_email($email)) {
  52.                 $arreglo_espacio = $email;  
  53.                 echo "<pre>";
  54.                 print_r ($arreglo_espacio);
  55.                 echo "</pre>";
  56.                 } else {
  57.                 $arreglo_sucio= $email;
  58.                 echo "<pre>";
  59.                 print_r ($arreglo_sucio."mal");
  60.                 echo "</pre>";
  61.                 }
  62.             }  
  63.         }
  64.     }      
  65.     if($emails=array_merge($arreglo_a,$arreglo_b,$arreglo_c)){
  66.     echo "<pre>";
  67.     print_r ($emails);
  68.     echo "</pre>";
  69.     foreach ($emails as $email)
  70.         if (is_email($email)){
  71.         echo $email."</br>";   
  72.         }else{
  73.         echo "Esto no es un correo, Retorna a el codigo".$email."</br>";
  74.         }  
  75.     }
  76.    
  77. }      
  78. ?>

Respuesta :

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

Array
(
[0] => [email protected]
[1] => [email protected]
[2] => [email protected] [email protected];[email protected]
[3] => [email protected] [email protected]
[4] => [email protected]
[5] => [email protected]
[6] => [email protected]
)

[email protected]
[email protected]
Esto no es un correo, Retorna a el [email protected] [email protected];[email protected]
Esto no es un correo, Retorna a el [email protected] [email protected]
[email protected]
[email protected]
[email protected]

lo importante es lo que muestra abajo porque con eso es lo que trabajo yo, lo demas es para demostrar que estoy retornando son pruebas solamente.

yo necesito retornar los que no son correos y volver a a pasarlos por el codigo, ¿ para que hago esto si ya esta reconocido ? Para reconocer la diferencia entre , y . o espacios... si pongo un espacio en el primer correo. es donde esta el error.

Si se repiten los correos no hay problema por que se ingresan como campo unico.

Que puedo hacer ?..

El que me quiera ayudar [email protected] es mi correo y mi msn.

Srs. Moradores ¿Podrian cambiar el titulo a uno mas cerca de lo requerido?. creo queme equivoque con el titulo

Última edición por aquilesnake; 30/07/2010 a las 09:06