Zitat:
Ich verzweifel gerade echt an diesem Fehler, hab schon gefühlte tausend Mal die Datei bearbeiten, neu hochgeladen und alles neu gestartet... Aber jedes mal nur eine Enttäuschung... :tear: *heul* ... :lol:
Für sowas bietet sich der Debugger von brauchbaren Entwicklungsumgebungen an ;-)
Zitat:
Ich habe die Ausgabe des Programms mit echo $line; einfach mal mit Übergeben lassen, und dann das ganze lokal ausprobiert - es funktioniert. - Kann das irgendwie an Zeichenkodierungen liegen?
Zur Variablenausgabe solltest du IMMER var_dump() statt echo nutzen, da du damit auch nicht sichtbare Zeichen angezeigt bekommst und Informationen zur Länge, Typ oder gar komplette Arrays anzeigen lassen kannst.
Den Regulären Ausdruck würde ich anders aufbauen, wenn du genau weißt, dass 00:00:00.00 kommen muss. Und zwar solltest du die einzelnen Blöcke explizit so angeben, weil sonst auch 0:000:0.0000 matchen kann. In dem Fall zB durch "(\d{2}:){2}\d{2}.\d{2}" -- (Es sei denn, es ist so gewollt).
Falls die Daten in der Konsole ein anderes Encoding haben als dein PHP-Skript, halte ich das durchaus als mögliche Fehlerquelle. UTF-8 muss man zB meines Wissens nach explizit mit dem "u"-Modifikator (also quasi direkt vor oder hinter dem "i") angeben. Da jetzt aber dein anderer Schnipsel funktioniert, schätze ich mal, dass es eher am Ausdruck oder dem Eingangsstring liegt.
Zum Testen von regulären Ausdrücken ist zB der "Regex Coach" ganz brauchbar. Alternativ ist es sinnvoll sich die zu untersuchende Zeichenkette selbst und am besten durch das
Programm zu speichern und den Ausdruck schrittweise aufzubauen anstatt ihn komplett hinzuschreiben. Im Ausdruck finde ich zu dieser Stunde allerdings keinen Fehler. Getestet hab ich deinen Codeschnipsel gerade lokal mit dem Ergebnis, dass er den Suchstring findet. Jetzt wäre auf jeden Fall der Ansatz mit der Kodierung anzuschauen und zusätzlich natürlich die genauen Daten, die der Ausdruck als Eingang bekommt.