Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][TXT]modyfikacja pliku
Forum PHP.pl > Forum > Przedszkole
@rtur
mam plik tekstowy (baza.txt) w którym jest baza a w bazie:

  1. Praga-Północ (Dzielnica miasta Warszawa)|powiat warszawski
  2. Naruszewo (wieś)|powiat płoński
  3. Nowy Dwór Mazowiecki (miasto)|powiat nowodworski
  4. itd...

Powiedzcie prosze jak moge to najszybciej zamienić na postać:
  1. Praga-Północ|Dzielnica miasta|Warszawa|powiat warszawski
  2. Naruszewo|wieś||powiat płoński
  3. Nowy Dwór Mazowiecki|miasto||powiat nowodworski
  4. itd...


razem do zamiany około 500 rekordów

Z góry dziękuje za pomoc smile.gif
wookieb
Ręcznie. Nie da się tutaj zastosować skryptu.
Pilsener
Najlepiej otwórz plik w notatniku i zamień (CTRL+H) "(" oraz ")" na "|" - resztę popraw ręcznie.
@rtur
hmm a może da to rade zrobić za pomocą skryptu php w 3 etapach:

1. Otwórz plik z wykorzystaniem file("baza.txt")
2. Znajdź i zamień string z wykorzystaniem preg_replace()
3. Zapisz plik z wykorzystaniem fputs

Tylko nie wiem jak to w działający skrypt wszystko złożyć.

Pytam bo może się okazać że tych plików będzie więcej do edycji i w jednym wierszu mogą być 2 nawiasy a ja chcę tylko ten pierwszy przerobić smile.gif
wookieb
A skąd skrypt ma wiedzieć co jest miastem a co nie? Tylko dlatego nie można zrobić tego skryptem.
P.s. Skoro wiesz jakie funkcje to jaki problem wejść do manuala i skleić coś samemu?
@rtur
Stąd ma wiedzieć, że przecież tam jest jasno napisane co jest miastem a co wsią, tylko że jest w nawiasie okrągłym a mi potrzeba zmienić wszystkie nawiasy gdzie są stringi (miasto), (wieś), (osada), itp. na |miasto|, |wieś|, |osada|, itp.
  1. <?php
  2. $tekst = preg_replace('/(wieś)/si','|wieś|',$tekst);
  3. $tekst = preg_replace('/(osada)/si','|osada|',$tekst);
  4. $tekst = preg_replace('/(miasto)/si','|miasto|',$tekst);
  5. ?>

wiem jak zamienić nie wiem tylko jak otworzyć plik do modyfikacji
zapis zrealizuje mi taka funkcja
  1. <?php
  2. $fb=fopen("baza.txt", "w");
  3. fputs($fb,$tekst)."\n");
  4. fclose($fb);
  5. ?>
wookieb
A słyszałes o file_put_contents?
Cytat
Stąd ma wiedzieć, że przecież tam jest jasno napisane co jest miastem a co wsią
Napisałeś to w 1 poście? Mogłobyć więcej mozliwości więc nic na ten temat nie wiedzieliśmy.
@rtur
Cytat(wookieb @ 17.12.2008, 11:42:54 ) *
Napisałeś to w 1 poście? Mogłobyć więcej mozliwości więc nic na ten temat nie wiedzieliśmy.

Cytat(@rtur @ 17.12.2008, 01:27:18 ) *
  1. Praga-Pó&#322;noc (Dzielnica miasta Warszawa)|powiat warszawski
  2. Naruszewo (wie&#347;)|powiat płoński
  3. Nowy Dwór Mazowiecki (miasto)|powiat nowodworski
  4. itd...

myślałem że to będzie jasne jak napisałem w kodzie itd...
Procesor
Jezu...
  1. <?
  2. $filewrite = "baza.txt";
  3. $fb = fopen ("$filewrite", "a+");
  4. $dane = file_get_contents($filewrite);
  5. $tekst = $dane;
  6. $tekst = preg_replace('(wies)', '|wies|', $tekst);
  7. fwrite($fb,$tekst);
  8. ?>
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.