xajart
2.12.2008, 18:25:49
Witam.
Chciałem zapytać czy można odczytać z poziomu kodu PHP zawartość plików PHP.
Chodzi mi mianowicie że mam dwa pliki które zawierają tlumaczenia. I jak wychodzi nowa wersja oprogramowania pojawiaja się w angielskiej wersji nowe tłumaczenia to bym sprawnie mógł sobie zaaktualizować do polskiej wersji.
Założenie jest takie mam dwa pliki
pl.php i en.php
ich zawartość wygląda tak:
plik en.php:
'a' => 'b',
'a1' => 'b1',
plik pl.php
'c' => 'd',
'c1' => 'd1',
Algorytm programu chciałbym by wyglądał w taki sposób:
1) rozbić wiersz po wierszy - czyli poprzez explode wg przecinka
2) rozbić każdy wiersz wg apostrofu
3) i w ten sposób z pliku en.php pobrać najpierw 'a' po czym z pliku pl.php sprawdzić czy istnieje w nim zapis 'a' jeżeli
TAK to wyświetl wynik: 'a' => 'd'
NIE do wyświetl wynik w innym kolorze: 'a' => 'b'
4) I tak wszystkie wiersze pokolei które są w plikach, a i jeszcze jedno z pomijaniem duplikatów 'a' (bo w anglojezycznej wersji się pojawiają)
Będe wdzieczny za jakie kolwiek wskazówki.
bartg
2.12.2008, 18:46:10
Wczytujesz oba pliki. Rozbijasz je poprzez explode. Potem usuwasz spacje, które nie są w apostrofach (jakby bylo gdzies za duzo, programowi to zmieni duzo, tobie nic) i puste linie. I porównujesz kolejne linie
if( $pierwszyplik[0]==$2plik[0]) { echo 'ok'; } else { echo 'ŹLE'; }
$pierwszyplik - array z liniami z 1 pliku
$2plik - array z danymi z 2 pliku
I po problemie
xajart
2.12.2008, 21:42:02
Dobra ogolny sens wiem jaki tego ma być.
Ale mam pytanie z innej beczki czy za pomocą PHP da się zrobić (napewno się da) tylko kwestia jak to zrobić. A mianowicie wiem że w pliku będą występować zapisy takie jak:
'a' => 'b',
'c' => 'w',
'e' => 'f',
'g" => 'd',
ale znajdują się w tym pliku również inne śmieci jak komentarze itp. w jaki sposób zredagować zapomocą PHP dany plik tak by wyciągał tylko to co mnie interesuje. Zapewne trzeba jakąś regułe ustalić, wyczytałem że za pomocą komendy split() można to uzyskąc - tylko nie potrafie sobie poradzić ze zdefiniowaniem wyrażenia regularnego.
Bo w zapisie typu 'a' => 'b' mogą w miejscu spacji wystąpić znaki tabulacji albo wielokrotnej spacji.
Ale głownie chodzi o to by skrypt wywalił wszystko poza zapisami w stylu 'a' => 'b' (z uwzglednieniem tabulacji i spacji)
Chyba. że znacie jakiś łatwiejszy sposób - na rozwiązanie tego problemiku ?
bartg
2.12.2008, 22:41:53
poczytaj o wyrażeniach regularnych

<?php
?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.