Format TCPA list file
Route::get('/format', function () {
$path = \Illuminate\Support\Facades\Storage::path('file.csv');
$path2 = \Illuminate\Support\Facades\Storage::path('file-formatted.csv');
$reader = \League\Csv\Reader::createFromPath($path, 'r');
$writer = \League\Csv\Writer::createFromPath($path2, 'w');
$reader->setHeaderOffset(0);
$writer->insertOne($reader->getHeader());
foreach ($reader as $line => $row) {
if($row['phone'] === '') {
continue;
}
if($row['name'] !== '') {
$formatted = preg_replace("/[^A-Za-z ]/", '', $row['name']);
if(!\Illuminate\Support\Str::contains($formatted, ' ')) {
$split = preg_split('/(?=[A-Z])/', $formatted);
foreach ($split as $i => $item) {
if($item === '') {
unset($split[$i]);
} else {
$split[$i] = ucfirst($item);
}
}
$parts = count($split);
if($parts === 2 || $parts === 3) {
$row['name'] = implode(' ', $split);
}
}
}
$writer->insertOne($row);
}
});
No Comments