Script PHP pour convertir des fichiers dbase en csv

Seb -  
 Seb -
Salut à tous,
Dans le cadre de la création d'un site web, je dois convertir des fichiers dbase en csv afin de les importer dans woocommerce de wordpress, je suis malheureusement perdu pour faire cela, car ça dois ce faire une fois par jour de manière automatique, si quelqu'un a une idée je suis preneur :)
Merci par avance!
A voir également:

3 réponses

Utilisateur anonyme
 
Bonjour

Ne te contente pas d'un script qui écrit des champs séparés par des ";", car le csv n'est pas aussi simple que ça. Adapte (en fait, simplifie) le code de nicelife90 pour utiliser la fonction fputcsv qui est faite pour ça.
3
nicelife90 Messages postés 676 Statut Membre 151
 
Bonjour,

Peut être quelque chose du genre :

set_time_limit( 24192000 );
ini_set( 'memory_limit', '-1' );

$files = glob( '/path/to/*.DBF' );
foreach( $files as $file )
{
    echo "Processing: $file\n";
    $fileParts = explode( '/', $file );
    $endPart = $fileParts[key( array_slice( $fileParts, -1, 1, true ) )];
    $csvFile = preg_replace( '~\.[a-z]+$~i', '.csv', $endPart );

    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 .= ';';
            $out .= trim( $val );
        }
        $out .= "\n";
    }

    file_put_contents( $csvFile, $out );
}

1
Seb
 
Merci beaucoup pour vos réponses ! Je vais voir ça de plus près
0