Search code examples
phpcsvutf-8iconv

How to convert a CSV file using a PHP script


I need to convert a CSV file to UTF-8 and rename it using a PHP script.

The following code worked on my PC but now i need to do this on a server as a CRON task

iconv -f UTF-16LE -t UTF-8 OLD-FILE.csv > NEW-FILE.csv

Anyone know the equivalent in PHP. Thanks a lot.


Solution

  • A simple method would be to load the CSV file to a string using this command:

    Then you can UTF-8 Encode the string using this command:

    Finally write the string to a file using file_put_contents.

    Finished code could look like this:

    $file_data = file_get_contents('/my/path/to/file.csv');
    $utf8_file_data = utf8_encode($file_data);
    $new_file_name = '/my/path/to/new_file.csv';
    file_put_contents($new_file_name , $utf8_file_data );
    

    Make sure the web server has the correct permissions to both read and write to appropriate locations.

    Here is the link to file_put_contents():