Skip to main content

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