contains_invalid_string - Funktion macht Probleme (General)
Vielleicht sollte man es für die Wörter am Anfang auch mit einem regulären Ausdruck regeln. Etwas wie
^(javascript|file|data|jar)\:
könnte da bereits helfen in Verbindung mitpreg_match
.
Nicht nur vielleicht... so wird ja nur das Protokoll am Anfang des Strings gefunden (den Accent Circonflex (^) am Anfang hatte ich erst nicht richtig verstanden).