Скрипт для конвертации DBF в CSV

28.07.2016

Скрипт можно запускать можно как по http, так и в консоли.

Основной проблемой то, что функции для работы с dbase по умолчанию в php отсутствуют.

Доставить поддержкуdbase можно через pecl, Сначала нужно удалить старую версию pecl и поставить подходящую под нужную версию php, если вестии совпадают, то первые две команды нужно пропустить.

 
yum -y remove php-pear
yum -y install php55w-pear

pecl install dbase

1.php (Download)

 <?

  $file = '1.DBF';
  $csvFile = '1.csv';

  if( !$dbf = dbase_open( $file, 0 ) ) die( "Could not connect to: $file" );
  $num_rec = dbase_numrecords( $dbf );
  $num_fields = dbase_numfields( $dbf );

  $fields = array();
  $out = '';

  for( $i = 1; $i <= $num_rec; $i++ )
  {
    $row = dbase_get_record_with_names( $dbf, $i );
    $firstKey = key( array_slice( $row, 0, 1, true ) );
    foreach( $row as $key => $val )
    {
      if( $key == 'deleted' ) continue;
      if( $firstKey != $key ) $out .= ';';
      $val = iconv('CP866', 'windows-1251', $val);
      $out .= trim( $val );
      
    }
    $out .= "\n";
  }

  file_put_contents( $csvFile, $out );


Яндекс.Метрика