Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] problem z funkcją konwersji
Forum PHP.pl > Forum > Przedszkole
adek-
Witam, próbuje zrobić sobie funkcję przetwarzania wielu xml'i która będzie podpięta do crontaba co 5 min i mam problem z danymi wyjściowymi - nie przetwarza i nie zapisuje mi pliku, a skrypt normlanie działa jesli nie jest jako funkcja, zapewne błędnie ułożoną mam funkcji - moja pierwsza jako początkującego amatora php.

kod tej funkcji znajduje się w pliku function.inc.php i tam też na samym koncu dodaje sobie nowe pliki do przetworzenia :
  1. <?php
  2. function rateconverter ($wejsciowy, $wyjsciowy)
  3. {
  4. #Wczytywanie pliku
  5. $file=file($wejsciowy);
  6.  
  7. #Start XML
  8. $myLine = '';
  9.  
  10. $dane='<?xml version="1.0" encoding="utf-8"?>
  11. <data>
  12. <tabela timeout="15">
  13.  
  14. ';
  15.  
  16. foreach ($file as $data) {
  17. $line=explode("#",$data);
  18. if ($line[0] == 'xxx') { $nazwaw = 'nazwa xxx'; }
  19. elseif ($line[0] == 'yyy') { $nazwaw = 'nazwa yyy'; }
  20. elseif ($line[0] == 'zzz') { $nazwaw = 'nazwa zzz'; }
  21. elseif ($line[0] == 'bbb') { $nazwaw = 'nazwa bbb'; }
  22. else { }
  23.  
  24. if($line[0] == '999')continue;
  25. if($line[0] == '986')break;
  26.  
  27. $myLine .= '<item symbol="'.$line[0].'" imgsrc="./flagi/'.strtolower($line[0]).'.png" jednostka="'.$line[1].'" kupno="'.$line[2].'" sprzedaz="'.$line[3].'"><![CDATA['.$nazwaw.']]></item>
  28. ';
  29.  
  30. }
  31. $dane .= $myLine;
  32. $dane .= '
  33. </tabela>
  34. </data>';
  35.  
  36. $wp=fopen('$wyjsciowy', 'w+');
  37. fwrite($wp, $dane);
  38. fclose($wp);
  39. }
  40.  
  41. //i tutaj bym chciał dodawać sobie ew pliki do prztworzenia wywołane w funkcji, zamiast kopiować ciągle ten cały kod podmieniając tylko nazwy plików
  42. rateconverter('plik1-RATE.xml', 'plik1.xml');
  43. rateconverter('plik2-RATE.xml', 'plik2.xml');
  44. rateconverter('plik3-RATE.xml', 'plik3.xml');
  45. ?>

plik wejsciowy zawiera takie dane
  1. xxx#100#277.80#288.90
  2. yyy#100#395.20#405.90
  3. zzz#100#293.00#305.00

ale tak jak mówię, skrypt działa jeśli go wkleje bez funkcji i zamiast $wyjściowe i $wejsciowe wpiszę normalne nazwy...

a funkcję robię dlatego, bo tak jak mówię będę chciał żeby się ten skrypt wykonywał w crontabie. Zacząłem od funkcji, bo to wyszukałem jako pierwsze i nie wiem czy są lepsze sposoby na obróbkę masową przy użyciu małej ilości kodu odwołania na stronach.
wewior
powinno być:
  1. $wp=fopen($wyjsciowy, 'w+');
wookieb
Czekam na PW z poprawną nazwą tematu.
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.