Zlecono mi napisane skryptu sprawdzającego poprawność pliku (ASCII) zawierającego tłumaczenia pewnego systemu. Skrypt ma zwracać numer linii i wyrażenie, w którym wystąpił błąd.
Główna składnia tłumaczenia to:
tekst_oryginalny1=tekst_przetłumaczony1 ;
tekst_oryginalny2=tekst_przetłumaczony2 ;
itd...
Standardowy błąd, który muszę wykrywać to oczywiście brak ";" lub "=" w wyrażeniu. Wykombinowałem coś takiego:
<?php function file_check($input_path){ $j = 0; for($i=0; $i<count($file_array); $i++){ $error_list[$j][1] = $file_array[$i]; $error_list[$j][2] = 1; // typ błędu $j++; } } return $error_list; } ?>
Funkcja działa poprawnie tylko mam problem ze zwróceniem nr linii w pliku. Problem wynika głównie z tego, że jedno wyrażenie to niekoniecznie jedna linia... Np:
tekst
oryginalny=tłumaczenie
tekstu;
To wyrażenie jest również poprawne. Co więcej EOL \n jest istotny dla samego systemu. Domyślam się, że samo założenie przepisywania pliku do zmiennej i rozbijania do tablicy jest w tym przypadku 1. nieeleganckie 2. nieefektywne. Pomożecie sezonowemu programiście
