Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sprawdzenie czy xml jest zapisywany i ponowna próba
a79rtur
post 10.03.2009, 15:33:20
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


witam
pewne skrypty tworza pliki xml na serverze, inny skrypt odczytuje niektóre z xmli, czasem (podejrzewam ze gdy xml jest zapisywany) skrypt odczytujacy zwraca blad ze xml jest niepoprawny. czy moje podejrzenia sa sluszne ? czy xml jest zapisywany "od razu" czy w kawalkach ? czy mozna jakos sprawdzic czy plik jest zapisany poprawnie i w calosci i jesli nie to odczekac i spróbowac ponownie?


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 15:44:18
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Najprościej weryfikując rozmiar.

Pliki zapisywane są strumieniowo, paczkami wg rozmiaru bufora.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
a79rtur
post 10.03.2009, 16:10:43
Post #3





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


czyli jak to moge zrobic ? moge prosic o jakis przyklad


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
dr_bonzo
post 10.03.2009, 16:17:02
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Masz cos takiego jak flock" title="Zobacz w manualu PHP" target="_manual. Blokuje ci dostep do pliku na czas odczytu/zapisu. poczytaj szczegoly w manualu.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 16:18:23
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




fopen" title="Zobacz w manualu PHP" target="_manual i później przechodzisz przez fseek" title="Zobacz w manualu PHP" target="_manual do pozycji będącej rozmiarem pliku - 1. Jeśli zwróci false, plik nie został w całości przesłany.

Tylko musisz znać rozmiar pliku.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
a79rtur
post 10.03.2009, 16:20:02
Post #6





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


to nie rozwiaze problemu, poniewaz nawet jesli przy zapisie zablokuje plik to musze jakos sprawdzic czy jest zablokowany. nie sadze zeby domxml->load() to sprawdzalo albo czekalo.
po drugie z tego co slyszalem flock() nie dziala na serverach za dobrze, bo gdyby dzialalo serwer mialby powazny problem z
nagromadzeniem zadan dostepu gdy ktos nie zwolni uchwytu


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 16:22:26
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale nie chodzi mi o to, abyś blokował. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
a79rtur
post 10.03.2009, 16:31:00
Post #8





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


Cytat(erix @ 10.03.2009, 18:18:23 ) *
fopen" title="Zobacz w manualu PHP" target="_manual i później przechodzisz przez fseek" title="Zobacz w manualu PHP" target="_manual do pozycji będącej rozmiarem pliku - 1. Jeśli zwróci false, plik nie został w całości przesłany.

Tylko musisz znać rozmiar pliku.


no tak, ale skad go wziasc smile.gif ? pliki xml laduje za pomoca metody DOMXML->load()


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
dr_bonzo
post 10.03.2009, 16:57:58
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


DOM mozna wczytac ze stringa - a wiec mozesz uzyc flock() i ew. wyprintowac sobie ta czesc XMLa, ktora juz udalo sie odczytac (ta "bledna").


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
a79rtur
post 10.03.2009, 17:11:56
Post #10





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


czyli filesize() sprawdzic rozmiar pliku, wczytac plik do stringu i porownac rozmiary ? czy aby napewno filesize() zwroci mi wlasciwy rozmiar pliku? czy tylko tyle ile jest w danej chwili zapisane ?


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 17:15:14
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie polecam filesize" title="Zobacz w manualu PHP" target="_manual, gdyż rozmiar pobiera z TOC systemu plików. Poza tym, wynik funkcji jest cache'owany, o czym można przeczytać w dokumentacji.

A może mieć miejsce sytuacja, że system alokuje niezbędny rozmiar docelowy, a zawartość pliku może być dopiero dopisywana. Dlatego piszę o fopen" title="Zobacz w manualu PHP" target="_manual+fseek" title="Zobacz w manualu PHP" target="_manual.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
a79rtur
post 10.03.2009, 17:27:45
Post #12





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


moglbys wstawic prosze kawalek kodu, bo nadal nie rozumiem jak moglo by mi to pomóc, w sytuacji gdzie interesuje mnie tylko wczytanie pelnego pliku.


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 17:34:03
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A jak otwierasz pliki w PHP? Otwierasz tak samo plik XML i sprawdzasz za pomocą fseek" title="Zobacz w manualu PHP" target="_manual konkretny offset (czyli w tym wypadku - rozmiar w bajtach). Jeśli zwróci false, to nie został kompletnie skopiowany.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
a79rtur
post 10.03.2009, 17:52:42
Post #14





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


no tak, ale skads musze wziasc ten offset

  1. <?php
  2. int fseek  ( resource $handle  , int $offset  [, int $whence  ] );
  3. ?>


pytanie, jaka funkcja?


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 18:23:52
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
pewne skrypty tworza pliki xml na serverze

Myślałem, że znasz offset. winksmiley.jpg

Skoro jest nieznany, to przychodzi mi tylko to jedyne na myśl. Zakładam, że dane są objęte np. tak:
Kod
<root>
</root>


to sprawdzenie wyglądałoby mniej więcej tak:
  1. <?php
  2. $valid = false;
  3. while(!feof($p)){
  4.    $l = fgets($p);
  5.    if(strpos($l, '</root>')!==false){
  6.      $valid = true;
  7.      break;
  8.   }
  9. }
  10. ?>


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
a79rtur
post 11.03.2009, 10:06:24
Post #16





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


jest to jakies rozwiazanie. dzieki smile.gif


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 14:42