Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP - aplikacja porównująca
Forum PHP.pl > Forum > PHP
xajart
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
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
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
poczytaj o wyrażeniach regularnych smile.gif
  1. <?php
  2. preg_match_all('!'(.+?)' => '(.+?)',!is', $brudny, $czysty);
  3. ?>
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.