Scripts

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);
    }
});

Find number in CSV file

Route::get('/find', function () {
    ini_set('max_execution_time', 30000);
    ini_set('memory_limit', '2048M');

    $search = '4246263942';

    $files = \Illuminate\Support\Facades\Storage::files('directory_in_storage_app');
    $foundInFiles = [];

    foreach ($files as $file) {
        $path = \Illuminate\Support\Facades\Storage::path($file);
        $reader = \League\Csv\Reader::createFromPath($path, 'r');

        foreach ($reader as $line => $row) {
            foreach ($row as $value) {
                if($value === '')
                    continue;

                if(\Illuminate\Support\Str::contains(preg_replace('/[^0-9]+/', '', $value), $search)) {
                    $foundInFiles[] = [
                        'file' => $file,
                        'line' => $line,
                        'val' => $value
                    ];
                }
            }
        }

        $reader = null;
    }

    dd($foundInFiles);
});