Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] wyrażenia regularne, ale nie do końca...
pi_wo
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 18.03.2009

Ostrzeżenie: (0%)
-----


Witam,

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:

  1. <?php
  2. function file_check($input_path){
  3.        
  4.    $file = fread(fopen($input_path,"r"), filesize($input_path));
  5.    $file_array = array();
  6.    $file_array = explode(";",$file);
  7.    
  8.  
  9.    $error_list = array();
  10.    $j = 0;
  11.        
  12.    for($i=0; $i<count($file_array); $i++){
  13.    
  14.        if( substr_count($file_array[$i], '=') != 1 ){
  15.            
  16.            $error_list[$j][1] = $file_array[$i];
  17.            $error_list[$j][2] = 1; // typ błędu
  18.            $j++;
  19.            
  20.        }
  21.        
  22.    }
  23.  
  24. return $error_list;
  25.    
  26. }
  27. ?>


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ?
Go to the top of the page
+Quote Post

Posty w temacie
- pi_wo   [PHP] wyrażenia regularne   18.03.2009, 16:49:08


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:59