DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Problem sa preuzimanjem sadrzaja stranice (http://www.devprotalk.com/showthread.php?t=794)

krcko 17. 03. 2006. 02:22

Problem sa preuzimanjem sadrzaja stranice
 
Pisem neku skriptu koja ce da vuce vremenske podatke sa weather-channela i imam problema upravo kod tog dela - preuzimanjem podataka.
podaci su u xml obliku i samo parsiranje xml-a mi ne predstavlja problem.
posto ne mogu da koristim cUrl (jer nije instaliran na serveru na kom ce moja skripta da se izvrsava) nasao sam jednu klasu "Snoopy" (http://snoopy.sourceforge.net, mada sam siguran da znate za ovu skriptu) koja emulira brower (kao cUrl) samo sto mi snoopy daje pogresne rezultate!

trebaju mi podaci sa ovog linka:
http://xoap.weather.com/search/search?where=Kraljevo

ako jednostavno odem na taj link sa bilo kojim browserom dobijem ovo:
Kôd:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--This document is intended only for use by authorized licensees of The Weather Channel. Unauthorized use is prohibited. Copyright 1995-2005, The Weather Channel Interactive, Inc. All Rights Reserved.-->
<search ver="2.0">
  <loc id="YIXX0023" type="1">Kraljevo, Serbia And Montenegro</loc>
</search>

sto mi i treba.
ALI kada izvrsim ovu skriptu:
Kôd:

include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetch("http://xoap.weather.com/search/search?where=Kraljevo");
echo $snoopy->results;

ona me baci na neki link (trenutni podaci za kraljevo sa svim slicicama sa weather channela!) koji nisam uspeo da nadjem na weather.com-u!

skriptu sam uploadovao ovde:
http://www.cakucica.net/vreme/gen_weather.php

tako da mozete da vidite sta se desava...


hvala unapred na pomoci!

krcko

krcko 17. 03. 2006. 03:57

Problem resen! :)

palo mi je napamet da jednostavno ucitam link u file() i radi! :)
samo sto prvo proverim dal je server aktivan, evo koda:
Kôd:

$url = "http://xoap.weather.com/search/search/index.php?where=Kraljevo";
$urldata = parse_url($url);
$serveractive = fsockopen($urldata['host'], 80, $errno, $errstr, 1);
if ($serveractive) print_r(file($url));

i lepo dobijem ovo:
Kôd:

Array
(
    [0] => <?xml version="1.0" encoding="ISO-8859-1"?>

    [1] => <!--This document is intended only for use by authorized licensees of The Weather Channel. Unauthorized use is prohibited. Copyright 1995-2005, The Weather Channel Interactive, Inc. All Rights Reserved.-->

    [2] => <search ver="2.0">

    [3] =>  <loc id="YIXX0023" type="1">Kraljevo, Serbia And Montenegro</loc>

    [4] => </search>

    [5] =>

)

sto mi i treba :)

pozdrav svima i izvinite sto sam postavio pitanje na koje sam sam dao odgovor :D

bluesman 17. 03. 2006. 04:16

Ne izvinjavaj se, veruj mi da nema ništa bolje od toga :)

noviKorisnik 17. 03. 2006. 09:03

Jeste, sad svi znamo kako se preuzima vremenska prognoza za Kraljevo :-D

dinke 17. 03. 2006. 11:51

Citat:

Originalno napisao bluesman
Ne izvinjavaj se, veruj mi da nema ništa bolje od toga :)

Ima i zove se Curl. Slazem se da ova varijanta sa fsockopen radi posao, a isto si mogao sa fopen (ako je allow_url_fopen ukljuceno) pa cak i sa raw level socketima. Problem sa svim tim funkcijama su perfomanse. Na osnovu mog iskustva, Curl je jedno 10-tak puta brzi fsockopen. To naravno nije bitno kad ti treba jedan fajl, ali u slucajevima kada imas hiljade takvih konekcija, to itekako dolazi do izrazaja.

bluesman 17. 03. 2006. 13:49

Dinke, nisi se naspavao :)

Nisam mislio da nema ništa bolje od ovoga što je napravio nego sam komentarisao njegovo izvinjavanje zato što je sam sebi dao odgovor na pitanje. Za TO sam rekao da nema ništa bolje :)

noviKorisnik 17. 03. 2006. 14:07

Ovde je Curl isključen u prvoj poruci ... varijanta - a šta ako ga nema ;-)

jasmanac 17. 03. 2006. 14:18

E Dinke, Dinke... spavaj malo duze :P

dinke 17. 03. 2006. 15:06

Citat:

Originalno napisao noviKorisnik
Ovde je Curl isključen u prvoj poruci ... varijanta - a šta ako ga nema ;-)

Tek sad videh, izvinjavam se :1064:

U svakom slučaju, sve što sam rekao vezano za sporost socket f-ja u PHP-u - stoji.

krcko 19. 03. 2006. 02:06

1 Prilog(a)
znam da je ovaj moj nacin sporiji nego cUrl ali kao sto sam rekao ne mogu da koristim cUrl pa sam morao da se snalazim :)
A ionako skripta vuce najvise tri (mada najcesce 1) fajla koji su 1mb i manji tako da ovde cUrl i ne treba.

sto se tice moje skripte radim na verziji 0.3 (necu da vas zamaram istorijom skripte :p) ciju beta verziju mozete da isprobate ovde:
http://www.cakucica.net/vreme/test/

a i okacio sam je uz ovaj post cisto ako nekome zatreba...

(da bi isprobali skriptu kod vas moracete da se registrujete na weather.com-u za weather xml data feed na ovoj atresi: https://registration.weather.com/reg...n/xmloap/step1)

pozdrav svima!

[edit]
zaboravio sam da vas pitam da ne znate mozda sta su:
- Maximum wind gust speed
- Dew point

engleski mi ne ide bas najbolje :)
[/edit]


Vreme je GMT +2. Trenutno vreme je 18:03.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.