Una idea sencilla para separar una cadena de texto línea por línea en PHP es usar la función explode()
con el separador de nueva línea "\n"
. Por ejemplo:
// Una cadena de texto con múltiples líneas
$texto = "uno@example.com
dos@example.com
tres@example.com";
// Separar los emails línea por línea
$lineas = explode("\n", $texto);
// Ahora puedes recorrer los emails si haces un recorrido al array $lineas
foreach ($lineas as $linea) {
echo "<p>" . $linea . "</p>";
}
?>
Si lo que necesitas es además validar los emails de cada una de las líneas puedes usar la función filter_var
con el filtro FILTER_VALIDATE_EMAIL
. Lo tendrás que hacer para cada elemento de la línea, por ejemplo:
$texto = "uno@example.com
dos@example.com
no-es-un-email";
$emails = explode("\n", $texto);
// Verificar que cada línea sea un email
foreach ($emails as $email) {
// quito los posibles espacios antes y después de la cadena, para asegurarme que no falla por eso
$email = trim($email);
// compruebo la validez de cada email
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
// email validado correctamente
echo $email . " es un email válido.<br>";
} else {
// la validación de email no ha sido buena
echo $email . " no es un email válido.<br>";
}
}
El código anterior validará cada línea y mostrará si es o no un email válido. Con el bucle foreach y el condiciona conseguimos que, para cada línea de la lista de emails, te indique si el formato es de un email válido o no.