Foros del Web » Programando para Internet » PHP »

Buscar siempre un mismo fichero en php

Estas en el tema de Buscar siempre un mismo fichero en php en el foro de PHP en Foros del Web. Muy buenas gente Tengo un modulo que me actualiza precios leyeendo ficheros csv de una carpeta del servidor, estilo de ruta: /httpdocs/csv/20160113.csv La programación busca ...
  #1 (permalink)  
Antiguo 13/01/2016, 15:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 160
Antigüedad: 16 años, 2 meses
Puntos: 1
Buscar siempre un mismo fichero en php

Muy buenas gente

Tengo un modulo que me actualiza precios leyeendo ficheros csv de una carpeta del servidor, estilo de ruta: /httpdocs/csv/20160113.csv

La programación busca el nombre del .csv que tiene la fecha más actualizada para posteriormente actualizar precios y stock con una tarea cron.

Ejemplo csv a actualizar:
csv recibido hoy seria 20160113.csv (Entre los 3 csv se actualizaria este)
el csv recibido ayer seria 20160112.csv
anteayer 20160111.csv

El codigo de la programación que hace que se tome como referencia la fecha es como sigue:
Código:
  * Logic
     */
    
    public function import() {

        $conection = ftp_connect($this->configVars['INV_FTP_HOST']);

        $login = ftp_login($conection, $this->configVars['INV_FTP_USER'], $this->configVars['INV_FTP_PASSWORD']);

        if ((!$conection) || (!$login)) {
            $this->_errors[] = $this->l('Conection failed');
            return FALSE;
        }

        if (ftp_chdir($conection, $this->configVars['INV_FTP_PATH']) === FALSE) {
            $this->_errors[] = $this->l('Conection failed');
            return FALSE;
        }

        $files = ftp_nlist($conection, ".");
        rsort($files);

        $current_date = date('Ymd');

        $filename = NULL;
        foreach ( $files as $_file ) {
            $file_name = str_replace('.csv', '', $_file);
            if (is_numeric($file_name)) {
                $filename = $_file;
                break;
            }
        }

        if (is_null($filename)) {
            $this->_errors[] = $this->l('No valid files was found.');
            return FALSE;
        }

        $local_file = dirname(__FILE__) . '/files/' . $filename;

        if (ftp_get($conection, $local_file, $filename, FTP_BINARY) === FALSE) {
            $this->_errors[] = $this->l('An error was ocurred while trying download the file: ' . $filename);
            return FALSE;
        }

        if (!file_exists($local_file)) {
            $this->_errors[] = $this->l('Local file is not found in: ' . $local_file);
            return FALSE;
        }
¿Saben ustedes que codigo poner para que la programación ignore la elección de actualizar el fichero en función de la fecha y que simplemente busque siempre el mismo fichero a actualizar con el nombre "supplier_prices.txt" ?

Saludos y muchas gracias

Última edición por lepe; 13/01/2016 a las 15:41
  #2 (permalink)  
Antiguo 13/01/2016, 20:42
 
Fecha de Ingreso: enero-2016
Ubicación: San Fernando
Mensajes: 5
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Buscar siempre un mismo fichero en php

Si mal no te entiendo solo deseas trabajar el fichero supplier:prices.txt. por ende deberias hacer algo como:
$filename ="supplier_prices.txt";
$local_file = dirname(__FILE__) . '/files/' . $filename;
y el siguiente codigo estaria demás
foreach ( $files as $_file ) {
$file_name = str_replace('.csv', '', $_file);
if (is_numeric($file_name)) {
$filename = $_file;
break;
}
}
saludos

Etiquetas: fecha, fichero, siempre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:50.