Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problemy ze zczytywaniem rss
ongaqjin
post 9.06.2008, 20:57:18
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.06.2008

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


napotkalem w pracy nad projektem bardzo dziwny problem (z mojego punktu widzenia - mam nadzieje, ze dla kogos kto to przeczyta bedzie to problem banalny). otoz musze napisac prosty skrypt php do odczytywania rssow z propozycjami prac (np.:http://www.pracuj.pl/ofertypracy/rss.aspx?regionID=1&name=dolnoslaskie). przy probie odczytania tego pliku na trzy rozne sposoby otrzymuje trzy rozne rezultaty.
1. jesli otworze adres w przegladarce, oczywiscie otrzymuje niesformatowany i malo uzyteczny ciag tekstu, po obejzeniu zrodla mam dokladny kod xml -- wszystko dziala jak nalezy;
2. jesli uzyje funkcji fopen() do otwarcia podanego wyzej adresu a poniej fread() do zamiany go na string, po wypisaniu zawartosci tego stringa otrzymuje tylko fragment pliku, przy czym w funkcji fread ustawilem ograniczenie ilosci znakow na 200000 a otrzymuje jakies 150 znakow. co ciekawsze, po kilkunastokrotnym odswiezeniu strony otrzymalem okolo dwukrotnie wiekszy fragment pliku (oczywiscie nadal o wiele za krotki), a po kolejnym odswiezeniu spowrotem ten sam fragment co wczesniej. przy probie wczytania innego adresu (z tej samej strony ale dla innego wojewodztwa) otrzymalem prawie identyczny fragment (jesli chodzi o liczbe znakow).
3. jesli uzyje funkcji simplexml_load_file(), zmienna ktorej przypisalem wartosc zwracana tej funkcji ma zawsze wartosc false - czyli wynik jest bledem.

jakies pomysly? winksmiley.jpg

Ten post edytował ongaqjin 9.06.2008, 20:58:49
Go to the top of the page
+Quote Post
batman
post 9.06.2008, 21:06:02
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Kiedyś napisałem bardzo prosty parserek RSS
  1. <?php
  2. $reader = new XMLReader();
  3. $reader->open($adres);
  4.  
  5. while($reader->read()) {
  6. if($reader->nodeType == XMLReader::ELEMENT) {
  7. $name = $reader->name;
  8. }
  9.  
  10. if($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'item') {
  11. echo '<hr />';
  12. }
  13.  
  14. if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA) {
  15. switch($name) {
  16. case 'link':
  17. echo '<a href="'.$reader->value.'">zobacz więcej ť</a><br />';
  18. break;
  19. case 'title';
  20. echo '<b>'.$reader->value.'</b> ';
  21. break;
  22. case 'description':
  23. echo $reader->value.'<br />';
  24. break;
  25. case 'pubDate':
  26. echo $reader->value.'<br />';
  27. break;
  28. }
  29. }
  30. }
  31. $reader->close();
  32. ?>

Nie dam głowy, że zadziała ze zdanym plikiem.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
ongaqjin
post 10.06.2008, 07:55:57
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.06.2008

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


lol, dzieki, dziala. choc szczerze mowiac nie wiem czemu. chcialem uzyc simplexml, bo ta biblioteka fajnie i wygodnie zamienia xmla w obiekt. chodzi o to, ze musze te informacje z xmla wczytac do bazy danych, wiec tak byloby najwygodniej, ale z tym co napisales powinienem sobie poradzic.
tak czy inaczej jest to dziwne. programuje juz od ladnych paru lat i nadal nie moge sie przyzwyczaic, ze niektore rzeczy po prostu nie dzialaja, choc powinny, chyba ze zrobi to ktos inny :/
w kazdym badz razie dzieki smile.gif.
Go to the top of the page
+Quote Post
batman
post 10.06.2008, 08:58:18
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




W ramach treningu proponowałbym zapisać dane w tablicy, która byłaby cache-owana. Dzięki temu możesz co jakiś czas (np co 1h) odświeżać zawartość rss.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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: 25.06.2025 - 15:00