Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]operacje na plikach
lamcpp
post
Post #1





Grupa: Zarejestrowani
Postów: 372
Pomógł: 2
Dołączył: 10.05.2009

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


mam plik *.txt, który wygląda mniej więcej tak:
2.0 1992.11 1975.10 22
1.1 1992.11 1975.10 35
1.1 SLE 1972.11 1975.10 40
&1300 MARATHON 1973.109 1975.08 42
...

Pytania:
-jak /przy pomocy jakiej funkcji dodać na początku każdego wiersza znak "$" (ale dodać tylko w tych wierszach, które nie mają znaku "&" na początku)
-jak usunąć wszystkie nadmiarowe spacje powyżej jednej
- za pomocą jakiej funkcji dodać przed ostatnimi numerami w rzędzie czyli przed 22, 35, 40, 42 znak ":", jak pomiędzy datami dodać znak "-"?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


@bastard13 Ale po co tak kombinować?
Wszystko można funkcjąi preg_replace() załatwić i to wywołując ją jeden raz:
  1. $sourceFileName = 'data.txt'; // tutaj zamiast data.txt wpisujesz nazwę swojego pliku
  2. $destinationFileName = 'data_'.time().'.txt'; // tutaj natomiast wpisujesz nazwę nowego pliku
  3. $content = file_get_contents($sourceFileName);
  4.  
  5. $patterns[0] = '#^[^&].*$#m';
  6. $patterns[1] = '#\s{2,}#';
  7. $patterns[2] = '#\s([0-9]+$)#m';
  8. $patterns[3] = '#([0-9]{4}.[0-9]{2})\s([0-9]{4}.[0-9]{2})#';
  9. $replacements[0] = '$$0';
  10. $replacements[1] = ' ';
  11. $replacements[2] = ':$1';
  12. $replacements[3] = '$1-$2';
  13.  
  14. $newContent = preg_replace($patterns, $replacements, $content);
  15. file_put_contents($destinationFileName, $newContent);

Dla przypadku 3 zamieniam spacje odpowiednio na : i -. Jeśli potrzebujesz tam również spacji, to dopisz je do $replacements[2] i $repecements[3].
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 04:01