2010-07-18 15 views
5

he archivo txt con direcciones de correo electrónico bajo debajo de la otra como:php explotar nuevas líneas de contenido de un archivo txt

[email protected] 
[email protected] 

Hasta ahora he conseguido abrirlo con

 $result = file_get_contents("tmp/emails.txt");
pero no sé a conseguir las direcciones de correo electrónico en una matriz. Básicamente podría usar explotar, pero ¿cómo delimito la nueva línea? ¡gracias de antemano por cualquier respuesta!

+1

Las respuestas a continuación son ideales; pero como referencia, puede usar explotar con el carácter de nueva línea, representado como \ n. (Esto también puede ser \ r \ n según si está usando Windows o Linux). – user11977

Respuesta

25

Simplemente lea el archivo usando file() y obtendrá una matriz que contiene cada línea del archivo.

$emails = file('tmp/emails.txt'); 

Para no agregar nuevas líneas a cada dirección de correo electrónico, usar la bandera FILE_IGNORE_NEW_LINES y saltarse las líneas vacías, utilice el FILE_SKIP_EMPTY_LINES bandera:

$emails = file('tmp/emails.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

Haciendo un var_dump($emails) del segundo ejemplo da esto:

array(2) { 
    [0]=> 
    string(13) "[email protected]" 
    [1]=> 
    string(14) "[email protected]" 
} 
+1

A pesar de que esto funciona, no tiene en cuenta las nuevas líneas basadas en Windows. usar preg_split funciona de manera más confiable. – Jubair

2

tan loco como parece esto, haciendo un return o enter dentro de una comilla doble ("") delimita una nueva línea. Para que quede claro, escriba:

explode("", "Stuff to delimit"); 

y simplemente golpear de vuelta en el medio de "", por lo que se obtiene:

explode(" 

", "stuff to delimit"); 

y funciona. Probablemente no convencional, y podría funcionar solo en Linux. Pero funciona.

4
$lines = preg_split('/\r\n|\n|\r/', trim(file_get_contents('file.txt'))); 
Cuestiones relacionadas