<?php

$urls = [
  'http://opendata.digital.gov.ru/downloads/ABC-3xx.csv',
  'http://opendata.digital.gov.ru/downloads/ABC-4xx.csv',
  'http://opendata.digital.gov.ru/downloads/ABC-8xx.csv',
  'http://opendata.digital.gov.ru/downloads/DEF-9xx.csv',
];

foreach($urls as $url) {
    $csv = explode(PHP_EOL, file_get_contents($url));

    $handlerFile = fopen(basename($url), 'w');
    foreach($csv as $row) {
        $row = str_getcsv($row, ';');
        $row = array_map(function($item) {
            $item = trim($item);
            $item = preg_replace('/^' . pack('H*', 'EFBBBF') . '/', '', $item);
            $item = preg_replace('/[[:cntrl:]]/ui', '', $item);
            $item = preg_replace('/[^[:print:]]/ui', '', $item);

            return preg_replace('/\s+/ui', ' ', $item);
        }, $row);

        fputcsv($handlerFile, $row);

    }
    fclose($handlerFile);
}
