Script PHP pour convertir des fichiers dbase en csv
Seb
-
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!
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!
3 réponses
-
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. -
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 ); }
-