gar nicht gut
das ganze würd ich so angehen, dass der download über ein eigenes script gestartet wird
Es gibt jetz die Möglichkeit, dass ein Script eine file liest und die dann einfach an den User sendet, aber per PHP würd ich dass dann nicht machen, sonst geht dein Server bald in die Knie (und ich glaub PHP wird oft gezwungen, nach 30 sekunden zu terminieren, und set_time_limit muss net immer funktionieren).
falls du das ganze über User hast, würd ich das über .htaccess regeln
es gibt genug beispiele, wie man .htaccess abfragen über PHP steuern kann. dann noch n paar cookies prüfen, etc...
ansonsten ginge einfach noch, dass du die Datei nach 5 aufrufen des downloadlinks sperrst, umbenennst oder so, das geht dann einfach über PHP