Los números en mi archivo son 5X5:
13456
23789
14789
09678
45678
Estoy tratando de ponerlo en este formulario
array[0]{13456}
array[1]{23789}
array[2]{14789}
array[3]{09678}
array[4]{45678}
Mi código es:
$fileName = $_FILES['file']['tmp_name'];
//Throw an error message if the file could not be open
$file = fopen($fileName,"r") or exit("Unable to open file!");
while ($line = fgets($file)) {
$digits .= trim($line);
$members = explode("\n", str_replace(array("\r\n","\n\r","\r"),"\n",$digits));
echo $members;
El resultado que obtengo es este:
ArrayArrayArrayArrayArray
3 respuestas
fgets
obtiene una línea del puntero del archivo, por lo que teóricamente no debería haber caracteres "\r"
o "\n"
en $line
. explode
seguirá funcionando, incluso si no se encuentra el delimitador. Simplemente terminará con una matriz con un elemento, la cadena completa. Sin embargo, no puedes hacer eco de una matriz. (Es por eso que está viendo Array
para cada línea; es lo mejor que PHP puede hacer cuando usa echo
en una matriz).
Si yo fuera tú, preferiría usar file()
en su lugar.
$members = array_map('trim', file($fileName, FILE_IGNORE_NEW_LINES));
Con el archivo de ejemplo que mostró, esto debería resultar en
$members = ['13456', '23789', '14789', '09678', '45678'];
Simplemente puede poner las líneas en una matriz y usar print_r en lugar de echo para imprimir esa matriz
while ($line = fgets($file)) {
$members[] = $line;
}
print_r($members);
Debe depender del archivo con el que está tratando.
Tipo de archivo:
- texto -> fgets ($ archivo)
- CSV -> fgetcsv ($ archivo)
Preguntas relacionadas
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.