Maybe i should tell how it works
if the fileextension of the uploaded file is sfv
First it scans through the sfv-file and store each line that doesn't start with a ; or is an empty row in an array.
After that it checks for duplicates; i.e. if the filename of row 1 equals the filename of row 2, the row 2 entry in the array is removed.
Now its time for the partitial check
First it compares the fileextention of all files and if 2 or more has the same extension it checks the length of the filename and if one or more entry has a shorter filename, same extension and same crc that entry is removed.
rewriting file with the clean sfv and eventual comments