Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: utworzenie tablicy ze znalezionych stringów
Forum PHP.pl > Forum > PHP
Najki
OK, mam takie oto zadanie. Mam plik zdalny, w którym znajdują się dane. Muszę je odpowiednio przetworzyć. Tu jest problem. Sądzę, że wyrażenia regularne by tu pomogły, ale szczerze liczę na czyjąś pomoc przy tym.

Plik ma zawartość np.:
Kod
dane_Start();dane_Start(22, "nazwa1", 33, 44, "2004-12-21", 2, 10, "miasto", "", "firma", "NB", "N", 0, "N");dane_Start(122, "nazwa2", 133, 144, "2004-12-22", 12, 110, "miasto2", "", "firma2", "NB", "Y", 10, "Y");dane_Start(322, "nazwa3", 333, 344, "2004-12-23", 32, 310, "miasto3", "", "firma3", "NB", "N", 30, "Y");dane_End();
Innymi słowy, plik składa się z początku [ dane_Start(); ], końca [ dane_End(); ] i środka, czyli danych. "dane_Start()" może powtarzać się dowolną ilość razy. Każda wartość wewnątrz danych oddzielona jest przecinkiem, a każdy blok danych średnikiem.

Skrypt powinien przetworzyć te dane i utworzyć z nich tablicę dwuwymiarową (pomijając rozpoczęcie i zakończenie), dzięki której będzie można bardzo elegancko operować na tych danych.

Będzie ktoś tak miły i skomponuje mi to z okazji zbliżającej się Wigilii ? smile.gif
netzah
Mam inny pomysl na to

  1. <?php
  2.  
  3. $t = 'dane_Start();dane_Start(22, \"nazwa1\", 33, 44, \"2004-12-21\", 2, 10, \"miasto\"\"\"\"firma\"\"NB\"\"N\", 0, \"N\");dane_Start(122, \"nazwa2\", 133, 144, \"2004-12-22\", 12, 110, \"miasto2\"\"\"\"firma2\"\"NB\"\"Y\", 10, \"Y\");dane_Start(322, \"nazwa3\", 333, 344, \"2004-12-23\", 32, 310, \"miasto3\"\"\"\"firma3\"\"NB\"\"N\", 30, \"Y\");dane_End();';
  4.  
  5. function dane_Start()
  6. {
  7. }
  8.  
  9. function dane_End()
  10. {
  11. }
  12.  
  13. eval($t);
  14.  
  15.  
  16. ?>


I po problemie smile.gif
Najki
Niebardzo wiem jak dalej na tych danych operować :/.
netzah
dokladasz do argumenty funkcji tablicy, np.

  1. <?php
  2.  
  3.  
  4. function dane_Start()
  5. {
  6.  $GLOBALS['tab'][] = func_get_args();
  7. }
  8.  
  9. $tab = array();
  10. eval($t);
  11. print_r($tab);
  12.  
  13. ?>


reszta bez zmian
Najki
Hmm, może ja pokażę dokładnie o co chodzi. Chodzi o np. ten plik: http://www.clanbase.com/cbjswarpast.php?cid=570396

Gdy wczytam go przez fle() to Twój skrypt wymięka. Jak to przetworzyć w dwuwymiarową tablicę?
bela
fsockopen winksmiley.jpg file_get_contents szukaj w manualu
netzah
Ehhhhh, dlaczego wiec otwierasz go przez file()? Napisz funkcje cbjsWarPast_Each(), jak w przykladzie wczesniej; plik pociagaj przez file_get_contents(), jak slusznie podpowiada bela_666.
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.