Witam,
Dostało mi się "w spadku" zadanie (w sumie tylko dokończenie). Muszę stworzyć skrypt który będzie pobierał z różnych serwerów pliki XML, a następnie zapisywał je na swoim "domowym" serwerze. Udało mi się napisać taki skrypt który pobiera z różnych wcześniej zdefiniowanych miejsc pliki XML, pobiera je i zapisuje u siebie. Kolejnym krokiem jest zapis do bazy (MySQL). Skrypt ogólnie dział, ale czaasami mu się zdarzy nawalić (najczęściej kiedy pliki XML mają jakieś błędy).
Kod mojego skryptu wygląda tak:
<?
include"funkcje.php";
function pobierz_xml($co, $filename){
echo "Pobieranie pliku: ".$co."<br>--- zapis w: ".$filename."<br>"; $filename2=$filename.".tmp";
$fp2=@fopen($filename2, 'w'); if ($result) {
echo "Zakończono pobieranie pliku.Trwa formatowanie pliku...<br>"; $fp2=@fopen($filename2, 'r'); $fp1=@fopen($filename, 'w'); $data = str_replace(">Go&Play<", "><![CDATA[Go&Play]]><", $data); // olimp.sklep.pl $data = str_replace(">http://www.proomo.pl/grafika/produkty/bc1400v&m.jpg<", "><![CDATA[http://www.proomo.pl/grafika/produkty/bc1400v&m.jpg]]><", $data); // proomo.eu if ($data==chr(13).chr(10)) $data=""; //proomo.eu
$data = str_replace("Wet&Dry<", "Wet and Dry<", $data); $data = str_replace("Bed&Sofa<", "Bed and Sofa<", $data); $data = str_replace("Click&Go", "Click and Go", $data); //$data = str_replace("\"", """, $data);
//$data = str_replace(" < ", " ", $data);
//$data = str_replace(" > ", "", $data);
$data=ascii_only($data);
if ($data6zn!="<pasaz" && $data6zn!="<loadO" && $data6zn!="</pasa" && $data6zn!="</load")
}
echo "Zakonczono formatowanie pliku...<br>"; return true;
} else {
echo "Błąd: Nie udalo sie pobrać: ".$co." !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<br>"; return false;
}
}
$poczatek = $czas[1] + $czas[0];
echo "<title>UPDATE Krok 1</title>"; echo "Praca wre....<br>"; $lockfile="/var/www/sc/tmp/aktualizacja_lockfile.tmp";
if ($diff>43200) {
echo "<B>Błąd: DZIAŁANIE SKRYPTU NA INNEJ KONSOLI ZOSTAŁO PRZERWANE!</B><br>Było to możliwe, ponieważ skrypt został uruchomiony ponad 12 godz. temu....<br><br>"; }
}
echo "<b>Błąd: SKRYPT OD ".$diff." SEKUND PRACUJE NA INNEJ KONSOLI! </b><br>Spróbuj ponownie za kilka minut!!! <br><br>"; }
$fp_lock=@fopen($lockfile, 'w+'); if ($fp_lock) {
$data=date('Y/m/d H:i:s')." IP:".$ip."\n"; }else{
echo "<b>Błąd: NIE UDAŁO SIĘ UZYSKAĆ DOSTĘPU DO DYSKU w celu utworzenia pliku! </b><br><br>"; }
echo "Maksymalny czas pracy skryptu: "; $max=ini_get('max_execution_time'); $id = (int)$_GET["id"];
include"config.php";
if ($kkkkkkk=="") {
if ($id)
$result_sklep=mysql_query("SELECT id, nazwa, login, xml_url, xml_typ FROM t_sklep WHERE id = '$id' AND dostepny='1'", $db); else
$result_sklep=mysql_query("SELECT id, nazwa, login, xml_url, xml_typ FROM t_sklep WHERE dostepny='1'", $db); $sklep_id=$row_sklep['id'];
$sklep_nazwa=$row_sklep['nazwa'];
$sklep_login=$row_sklep['login'];
$sklep_xmlurl=$row_sklep['xml_url'];
$sklep_xmltyp=$row_sklep['xml_typ'];
echo "<br>**** SKLEP: ".$sklep_login."<br>"; $dir="/var/www/p/s/data/".$sklep_login."/";
echo "*** Utworzono katalog ".$dir."<br>"; }
$filename=$dir."update.xml";
pobierz_xml($sklep_xmlurl, $filename);
}else{
echo "*** UWAGA: BRAK KATALOGU: ".$dir."<br>"; }
$koniec = $czas[1] + $czas[0];
}
echo "<br>Zakończono etap 1<br>"; }else{
echo "UWAGA: Nie udało się nawiązać połączenia z bazą danych!<br>"; }
?>
</body></html>
plik funkcje.php znajduje się pod tym adresem:
http://scanerwww.pl/funkcje.txta skrypt zapisujący plik XML do bazy danych tutaj:
http://scanerwww.pl/2.txtwygenerowany plik XML: www.scanerwww.pl/update.xml
działanie skryptu wgrywającego można zobaczyć tutaj:
http://scanerwww.pl/2.phpjak widać po błędach (skrypt 2.php) jest problem z plikiem XML :/
w firefoxie w źródle strony pokazuje mi się momentami różne dziwne rzeczy:(
i plik XML nie zapisuje mi się w bazie

(
Pomożecie mi z tym?? bo ja już nie wiem co z tym zrobić:(((
Z góry WIELKIE dzięki za pomoc

)))