Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

Usando PHP, ¿cómo puedo importar un txt de ancho fijo a MySQL?

El problema es que un reloj checador me da un archivo txt donde tiene los datos de las checadas, y estas las debo de subir usando php a una base en MySQL, pero el txt que genera el reloj es de ancho fijo, no separa los campos con comas ni nada por el estilo, ¿cómo puedo importar los datos directamente sin tener que convertirlo a otro tipo de archivo?

1 Answer

Rating
  • Anonymous
    1 decade ago
    Favorite Answer

    Bueno, primero tienes que convertir las líneas de texto a una serie de valores que puedas pasar a mysql.

    Digamos que abres tu archivo y le dices a php que lea cada línea en una variable que se llama línea, entonces puedes hacer algo así:

    $fecha = substr($linea, 0, 10);

    $trabajador = substr($linea, 10, 20);

    $entrada = substr($linea, 30, 6);

    $salida = substr($linea, 36, 6);

    $strSQL = "INSERT INTO checador (fecha, trabajador, entrada, salida) VALUES ('$fecha', '$trabajador', '$entrada', '$salida')";

    y esa información la mandas a mysql.

    Como ves el truco está en usar la función substr() para trocear la línea de texto. El primer número es la columna en que empieza el trozo que quieres y la segunda es la longitud de ese trozo.

    Espero que te ayude.

Still have questions? Get your answers by asking now.