Eli nyt pitäisi saada PHP:llä muutettua tageja tiedostossa tekstiksi.
Tämä koodi toimii muuten (malli ei muuta mitään muuta kuin poistaa tagin turhat tagin osat, mutta toimii), paitsi jos samalla rivillä on kaksi tagia, joihin preg_match osuu, niin menee pieleen.
Tässä on siis tarkoitus saada tekstissä (siis tagissa) oleva osa vaihdettua sen mukaan mitä tarvitaan, tässä tapauksessa kielikäännös, joten tuon "$match[1]":n takana tulee olemaan variable variable, joka viittaa kielikoodiin, jonka alta sopiva teksti vaihdetaan tuon tagin paikalle...
Tagien haku vain mättää nyt jos samalla rivillä on useita! Mitenkäs preg_match sadaan toimimaan niin, että se löytää samasta stringistä useita otoksia? Vai saako?
Ohessa malli:
$p = "/\{_T\((.*)\)\}/";
$f = fopen('./test.txt', 'r+');
while (!feof($f)) {
$line = fgets($f);
if (preg_match($p, $line, $match)) {
$line = str_replace($match[0], $match[1], $line);
echo $line . "\n";
}
}
fclose($f);
Ja itse luettava tiedosto malliksi:
tekstiä ja vielä tekstiä ja
pitäis löytää tagi {_T(jeejee)} jne ja myös {_T(joojoo)} ja sellaista.
ja vielä uudelleen {_T(joojoo)} sekä ja semmoista
ja niin pois päin.