Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> fragmenty danych z .txt - zapis do zmiennej
mosfet
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.02.2010

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


Witam

Mam takie sobie pliki z zawartoscia generowana przez pewien program:
Przedstawiam fragment:


  1. ;LNEXP-4.0
  2.  
  3. [LoginInfo]
  4. Protocol=LNEXP-4.0
  5. DictFieldsAsCodes=0
  6. Exporter=
  7. ExportDate=2008-08-04 12:36:26
  8.  
  9. [DataStream]
  10. idof|guidof|oferent_id|agenc|impa|kli|oddz|ofak|pryw|tylkopo|uid|zbr|minieksp|balmax|balmin|logmax|logmin|tarmax|tarmin|bank|
  11. celok|cenha|dodpo|ochro|okabl|opesp|podsu|podys|rastr|resta|socja|sysod|taras|cmax|cmax2|cmin|cmin2|walu|daom|daow|dawy|
  12. dazg|dlugo|grbud|grlaki|grorne|jm|kszta|kwg|naro|ogro|podmax|podmin|podz|szer|typwdz|ukszt|zadrz|bar|hlimn|hlios|patir|porek|
  13. posako|stdhot|idmu|idofo|limie|lokato|promiw|kuchu|kuchw|kuchy|pokmax|pokmin|typkuch|lok|okol|lazmax|lazmin|wcmax|wcmin|
  14. pommax|pommin|typhal|typram|medcie|medele|medgaz|medkan|medmoc|medogr|medsi|medwod|mlswy|intbud|konlibiu|konliusl|
  15. konwybiu|konwyusl|pobiuc|pobiuu|pouslc|pouslu|konlimax|konlimin|konwymax|konwymin|krydac|kw|przbiu|ptrlimax|ptrlimin|
  16. ptrnumax|ptrnumin|rokb|rypw|typbud|typmie|typnie|typof|typteb|typum|typwla|kto|nazwa|opis|www|rodpla|garusy|pagkom|
  17. pagmax|pagmin|palimi|parst|pazkom|pazmax|pazmin|lilok|kawal|pkmax|pkmin|polimax|polimin|sypmax|sypmin|gdlok|kienach|
  18. lokprz|pocodl|typdro|ulin|usyoki|widok|poloz|usylok|pocmax|pocmin|ponmax|ponmin|popmax|popmin|poumax|poumin|typpro|
  19. dapr|stan|std|stdmie|umebl|wolneod|telkom|telmax|telmin|rekgbli|rekgodl|rekjbli|rekjodl|reklbli|



Nie wiem jak zrobic pętle w PHP ktora odczytywalaby fragmenty tekstu zawartego pomiedzy znakami " | " czyli np " |idof| " i zapisywala wartosc do zmiennej $jakas_zmienna='idof'.

Generalnie sa to stringi danych ktore musze zapisac do tabeli SQL w celu ich dalszego przetwarzania.

Ten post edytował mosfet 15.02.2010, 14:54:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mosfet
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.02.2010

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


Ok. Poradzilem sobie:

Plik odczytywany:

  1. [Info]
  2. Plik=Lista_czesci
  3. ExportDate=2010-02-17
  4.  
  5. [DataStream]
  6. id_elem|nazwa|sym_prod|producent|kategoria|ozn_dost|ozn_prod|dostawca|opis|uwagi|cena_netto
  7. [Data]
  8. |rezystor|5r51|thomson|rezystor|dos_5r51|prod_5r51|TME|opisik|brak uwagi|0,20


Skrypt odczytujacy i tworzacy zapytanie SQL. Skrypt dziala poprawnie.

  1. <?php
  2.  
  3. $miejsce='pliki/';
  4. $sciezka1=$miejsce.$plik_nazwa ;
  5.  
  6.  
  7. $text1 = fread(fopen($sciezka1, "r"), filesize($sciezka1));
  8.  
  9. preg_match('/\[DataStream\](.*)\[Data\]/is', $text1, $matches);
  10. $data = explode('|', $matches[1]);
  11. $data = array_map('trim', $data);
  12. //$data = array_filter($data, 'trim');
  13.  
  14. preg_match('/\[Data\](.*)/is', $text1, $matches2);
  15. $data2 = explode('|', $matches2[1]);
  16. //$data = array_map('trim', $data);
  17. //$data = array_filter($data, 'trim');
  18. //print_r ($data2);
  19.  
  20.  
  21. mysql_insert_array($data, $data2);
  22.  
  23. function mysql_insert_array ($data, $data2) {
  24. echo('Wygenerowane zapytanie SQL:'.'</br>'.'</br>');
  25. //$my_base="'inz_michal'";
  26. $my_table="elementy";
  27. $keys = array_values($data);
  28. $values = array_values($data2);
  29. $sql = 'INSERT INTO ' . $my_table . '(' . implode(', ', $keys) .') VALUES (\'' .implode('\', \'', $values) .'\')';
  30.  
  31. echo $sql ;
  32. return(mysql_query($sql));
  33. echo mysql_error().'</br>';
  34.  
  35.  
  36. }
  37.  
  38.  


Chcialbym jeszcze teraz zrobic tak zeby w przypadku pliku w ktorym jest "wiecej elementow" czyli lini po znaczniku [Data]. Dla kazdej z lini zostalo wygenerowane oddzielne zapytanie ktore dopisze mi wartosci do bazy.
Kombinowalem cosz fgets() ale mi nie wychodzi.

Plik z danymi:

  1. [Info]
  2. Plik=Lista_czesci
  3. ExportDate=2010-02-17
  4.  
  5. [DataStream]
  6. id_elem|nazwa|sym_prod|producent|kategoria|ozn_dost|ozn_prod|dostawca|opis|uwagi|cena_netto
  7. [Data]
  8. |rezystor|5r51|thomson|rezystor|dos_5r51|prod_5r51|TME|opisik|brak uwagi|0,20
  9. |kondensator|csx100n|thomson|el. bierne|dos_csx100|prod_csx100|TME|opisik|brak w magazynie|0,02
  10. |układ scalony|LF33|STE|półprzewodniki|dos_lf33|prod_lf33cdt|TME|stabilizator|brak uwagi|1,23




Podpowie mi ktos (IMG:style_emoticons/default/questionmark.gif)
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: 28.12.2025 - 08:41