Hi !
En el segundo caso puedes separar por el "PUNTO Y COMA" ( ; ) y luego hacer un "trim()" al resultado y con eso eliminarías los espacios.
En el tercer caso deberias hacer el explode por el salto de linea (\n). (No sé si funciona, pero podrias probar :P).
Confirmo:
Puedes hacer: $res = explode("\n", $cadena);
Dejo un ejemplo:
Código PHP:
<?php
$cadena_2 = "mail@mail.com; mail@mail.com; mail@mail.com; mail@mail.com";
$res_2 = explode(";", $cadena_2);
$num = count($res_2);
for ($i=0; $i < $num; $i++) {
$res[$i] = trim($res[$i]);
}
print_r($res_2);
echo "<br />";
// Ejemplo con Cadena 3
// --------------------
$cadena_3 = "mail@mail.com
mail@mail.com
mail@mail.com
mail@mail.com";
$res = explode("\n", $cadena_3);
print_r($res);
?>
Saludos.