Keresés
Hírlevél
 
Kiemelt témák
»10 éves a prog.hu
»Párhuzamos programozás
»Párhuzamos végrehajtás == szemléletváltás!
Állás/munka
»Excel tábázat szétdarabolása munkalapokra
»Szerver beüzemelésre keresek szakembert!
»Tanárt keresek
»18+ PHP / MySQL
»2d/3d grafikus modellezőt KERESEK
» több téma
Tudástár
?Ensurance hiba XHTML validáláskor, mit jelent?
Hash (#) törlése az url címből újratöltése nélkül
?DOS - kimeneti fájl nevének növelése számlálóval?
Program indítási módok
Hiba a regisztrációnál
?Actionscript MovieClip egyezés ellenőrzés
?PHP:üres input mezőnél ne végezze
JSON array format
?C# 2d tömb beolvasás fájlból(txt).
WordPress jogosultság, kategóriák
? torrent file helyett txt-t
Szám átváltása bináris és hexadecimálissá.
*WebBrowser control mht file olvasás probléma
?Szál létrehozás - leállítás
?GetElementbyId hibakezelés
» több téma
Társalgó
»Udk-kezdőknek
»Az általános műveltség része kellene, hogy legyen a programozni tudás?
»JavaScript-ből és C-ből összegyúrt hibridnyelvet készített a Mozilla
»Python van értelme?
»UDK-licensz
»Újra programozni fog a Facebook alapítója és multimilliárdos elnöke
»Programozó padavan - pálya választás előtt
»Get flood elleni védekezés
»Firebird - Több adatbázis vagy egy?
»Clipper kontra XP
» több téma
ASPC#C++CSSDelphiFlashJavaJavaScriptPascalPerlPHPPythonuniPaaSVisual BasicVisual C++  »    

Tudástár

»

Valuta árfolyam a weblapomon

»

Valuta árfolyam a weblapomon

nyitotta: Petko, idő: 2005.07.28., moderátor: moderator, megoldás elfogadva: 2005.08.05. 12:42
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » PHP

Sorrend:
Időzóna:
Blokkméret:
Oszd meg másokkal is!
Szeretnék a weblapomra egy olyan árfolyam kijelzők, mint amilyen az eco.hu -n van.

Hogyan tudnám PHP segítségével URL keresztűl mondjuk egy <iframe> -be betölteni az eco.hu-n található valuta árfolyamtáblázatot?
http://www.phpclasses.org/browse/package/2153.html előzmény
http://www.mnb.hu/engine.aspx?page=napiarfolyamok

Pl megnyitod ezt a linket fopennel, és valami ereg, stb függvény segítségével kikeresgéled belőle a számokat, és a valutanemeket. Hasonlóan a tegnap rss phaerserhez. előzmény
Akkor ahogy megynitom, mint fájlba kikeresem a szükséges anyagot. igaz?

továbbá miért van az,hogy

$file = "http://www.hwsw.hu/xml/latest_news_rss.xml";

if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}

ez így nem megy.....

előzmény
"megnyitod ezt a linket fopennel"

nem sikerül linket megnyitmon fopen-nel!!!

miért? előzmény
php.ini-ben le van tiltva az url_fopen vagy hasonló nevű bejegyzésben egy link megnyitása. Ugyanis nem biztonságos. Helyette használj socket-eket (lásd manual), azzal tutira menni fog. Persze ez így alacsony szintű, de valamit valamiért... előzmény
Szerintem döntsük el, hogy most az árfolyamok kellenek, vagy a HWSW rss-e, mert aszerint kéne pharsert írni..
Az mnb oldala nem lesz jó, nagyon tele van bszva kóddal. Legyen az eco.hu:
          $fp = @fopen('http://www.eco.hu/', "r");
                  while(!feof($fp)){
                  $row .= fgets($fp, 4096);
                  }
          fclose($fp);
Ezzel belekerült a $row változóba a linken található oldal. Most jön az, hogy kivágod belőle ami kell, mondjuk az MNB Deviza nevű táblázatot a jobb hasábból. Ehez az kell, hogy megnézd az oldal forrását, hogy honnét lehet vágni, tehát hogy mihez igazítsd a reguláris kifejezés elejét meg a végét:
          if(eregi("MNB DEVIZA</font></td></tr>(.*)</tml>", $row, $resz)) {
                        $out = '<table>'."\n";
                        $out .= $resz;  // ezt vágtad ki
                        $out .= '</table>'."\n";
          }
Most már benne van az $out változóban ami kell, már csak ki kell íratni, vagy előtte még cachelni sem ártana. előzmény
nézd már meg azt a classt, amit küldtem, nekem müxik előzmény
ez a link elég jót ad vissza:

http://www.mnb.hu/engine.aspx?page=arfolyamtablazat&query=2005.... előzmény
Hát ja, csak ha megnézed a forrását...
Nemtudom miért nem csinál valamelyik bank RSS-elérést, vagy leglább valami emészthető XML-t. Hírek, részletes időjárás, receptek, névnap minden elérhatő már RSS-ből, csak a valuta nem előzmény
http://currencysource.com/rss_currencyexchangerates.html előzmény
Webservice. Erre találták ki. A weblap az ember számára szolgáltat "feldolgozandó adatot", a webservice meg gép számára. Itt van róla infó (nekem is épp a minap súgta meg egy kolléga a linket):
http://www.mnb.hu/arfolyamok.asmx
További kulcsszavak a technológiához: SOAP, WSDL. előzmény
erre tucc ezzel megoldást? előzmény

HTTP/1.1 500 Internal Server Error. Date: Thu, 28 Jul 2005 17:57:50 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 1.1.4322 Cache-Control: private Content-Type: text/xml; charset=utf-8 Content-Length: 514    soap:Server  Server was unable to process request. --> This is an unexpected token. The expected token is 'NAME'. Line 2, position 11.    HTTP/1.1 400 Bad Request Content-Type: text/html Date: Thu, 28 Jul 2005 17:57:50 GMT Connection: close Content-Length: 20
Bad Request

nekem egy ilyet dobott vissza. valakinek ötlet? előzmény
És pontosan mit post-oltál el? Mert a hibaüzenetből nekem úgy tűnik, hogy nem volt jó. előzmény
Ha minden igaz, akkor ha azt post-olod, ami ezen az oldalon felül van:
http://www.mnb.hu/arfolyamok.asmx?op=GetCurrentExchangeRates
úgy, hogy a content-length headerbe a kiemelt szöveg helyére beírod a törzsben lévő xml doksi hosszát (ha jól számoltam 312), akkor az alatta lévő válaszban a kiemelt string helyén valami ilyesmi fog szerepelni (természetesen sortörés és egyéb whitespace nélkül):
<MNBCurrentExchangeRates>
  <Day date="2005-07-28">
    <Rate curr="AUD" unit="1">153,49</Rate>
    <Rate curr="CAD" unit="1">164,59</Rate>
    <Rate curr="CHF" unit="1">156,77</Rate>
    <Rate curr="CZK" unit="1">8,12</Rate>
    <Rate curr="DKK" unit="1">32,86</Rate>
    <Rate curr="EUR" unit="1">245,15</Rate>
    <Rate curr="GBP" unit="1">354,46</Rate>
    <Rate curr="HRK" unit="1">33,57</Rate>
    <Rate curr="ISK" unit="1">3,15</Rate>
    <Rate curr="JPY" unit="100">180,37</Rate>
    <Rate curr="KRW" unit="100">19,77</Rate>
    <Rate curr="MXN" unit="1">19,08</Rate>
    <Rate curr="NOK" unit="1">30,97</Rate>
    <Rate curr="NZD" unit="1">137,99</Rate>
    <Rate curr="PLN" unit="1">60,01</Rate>
    <Rate curr="RON" unit="1">69,67</Rate>
    <Rate curr="SEK" unit="1">26,08</Rate>
    <Rate curr="SIT" unit="1">1,02</Rate>
    <Rate curr="SKK" unit="1">6,27</Rate>
    <Rate curr="TRY" unit="1">152,11</Rate>
    <Rate curr="USD" unit="1">203,22</Rate>
  </Day>
</MNBCurrentExchangeRates>
előzmény
Tessék, itt a kód, ez megcsinálja a lekérdezést. A 11-edik sorban ($s) van az egész visszaadott XML, ezt a php parserével szétszeded és máris megvan az adat.

<?php

$bdy = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$bdy.= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$bdy.= "<soap:Body>";
$bdy.= "<GetCurrentExchangeRates xmlns=\"http://www.mnb.hu/webservices/\" />";
$bdy.= "</soap:Body>";
$bdy.= "</soap:Envelope>\r\n";

$req = "POST /arfolyamok.asmx HTTP/1.1\r\n";
$req.= "Host: www.mnb.hu\r\n";
$req.= "Connection: Close\r\n";
$req.= "Content-Type: text/xml; charset=utf-8\r\n";
$req.= "Content-Length: ".strlen($bdy)."\r\n";
$req.= "SOAPAction: \"http://www.mnb.hu/webservices/GetCurrentExchangeRates\"\r\n\r\n";

$fs = fsockopen("www.mnb.hu", 80);
fwrite($fs, $req.$bdy);
while (!feof($fs))
{
    $s = fgets($fs);
    echo $s."<BR/>";
}
fclose($fs);
?>

Ha viszont a hostolt oldalon nincs engedélyezve az fsockopen, hát az szívás. Ha az 5-ös PHP-t használod, akkor abban már van gyári SOAP támogatás. Lehet, hogy azzal egyszerűbben megoldható. előzmény
Nekem működik. Tudsz még ilyen webservice forrásokat, vagy minek hívják?
De ehez akkor mindegyikhez külön kell írni xml értelmezőt nem arra amit visszaad? előzmény
Az MNB-ét is hetekig kerestem. Se google, se semmi eredmény. Aztán e-mailben kaptam meg a címet egy kollégától.

A különböző XML-ek parsolásáról: hát a WSDL alapvető feladata az volna, hogy azonosítsa a hívható "függvényeket", a bemeneti paramétereket és a kimeneti paramétereket típussal együtt. Erre aztán mindenféle automatikus eszköz van, a .NET például a WSDL-ből már olyan szinten kódot generál, hogy ott már csak meg kell hívni a megfelelő metódust, és az ember ölébe is pottyantak a visszaadott adatok.
Jelen esetben ez a WSDL (http://www.mnb.hu/arfolyamok.asmx?WSDL) nem a legjobban kidolgozott, mert egy teljes XML részfát ad vissza nyers string-ként, holott visszaadhatná ezt mondjuk tömbként is. előzmény
Miért van, ha parser segítségével egy XML hírforrást akarok elérni, hogy ha megakarom nyítni az XML-t

$fp = @fopen('http://www.hwsw.hu/xml/latest_news_rss.xml', "r");

Akkor ezt az üzit kapom:
Warning: feof(): supplied argument is not a valid File-Handle resource in /home/friends-lan/public_html/xml/index.php on line 84 előzmény
kipróbáltam az alábbi forráskódot, de nekem nem megy! Biztos PHP beállítási hiba, de mi lehet az?

ez volt a teszt:
$fp = @fopen('http://www.eco.hu/', "r");
while(!feof($fp)){
$row .= fgets($fp, 4096);
}
fclose($fp);

if(eregi("MNB DEVIZA</font></td></tr>(.*)</tml>", $row, $resz)) {
$out = '<table>'."\n";
$out .= $resz; // ezt vágtad ki
$out .= '</table>'."\n";
}


ezt kapom vissza:

Warning: feof(): supplied argument is not a valid File-Handle resource in /home/friends-lan/public_html/xml/index.php on line 82

Warning: fgets(): supplied argument is not a valid File-Handle resource in /home/friends-lan/public_html/xml/index.php on line 83


nem értem.....

előzmény
Nem kell saját magadnak szórakoznod fopennel meg ilyen hülyeségekkel, ennél a félmegoldásnál sokkal jobbat kapsz készen a PEAR ExhangeRates osztályával... előzmény
Köszi átfutom, mert ez így nekem tényleg fél megoldás!

De pontosan mit tud ez a csomag? előzmény
Egy xml árfolyamlistából tudsz vele lekérdezni árfolyamokat (a default xmlforrása tökéletes szerintem), és konvertálgatni köztük, formátumot beállítani, stb.

gyakorlatilag mindössze átkonvertálod minden érintett pénznem 1 árát forintra, és megkapod hány forintnak felel meg... előzmény
jó ez erre a feladatra OK, csak azért próbálkozom az fopen- el, mert mi ha pl. a BÉT vagy az ECO árfolyamdiagramját szeretném betölteni a lapomra?

Tehát mindenképp azért kellene fopen, h univerzális, minden elérhető legyen.... előzmény
A diagrammok képek, és simán linkelheted is őket... előzmény
egy példát tudnál mondani? nagyon életmentő lenne.

Pl.: a www.bet.hu -on bal oldalt van egy diagram, arra lenne szükségem!

nagyon hálás tudnék lenne! előzmény
http://www.bet.hu/gfx/pic/BUX.png

simán azt csinálod, hogy
<img src="http://www.bet.hu/gfx/pic/BUX.png" alt="bux diagramm" />

bármilyen böngészővel meg tudod nézni a képek címét... előzmény
ez így tényleg OK! gondolom a hivatkozás révén amikor frissűl a BÉT-en, akkor frissül nekem is a kép?

viszont ha már egy táblázat kellene, ami nem kép hanem HTML forrás azt már nem megy ezzel a módszerrel? előzmény
Igen, az frissül magától.

A táblázat viszont már HTML, így ha egyéb adatokat is tartalmaz, akkor azt ki kell bányásznod valahonnan. Ez megtehető magából a html forrásból is, de én valószínűbbnek tartom, hogy az a html is valami xml féle adatforrást használ, tehát pear xml-el azt is meg lehet egyszerűen oldani, csak meg kell keresni (érdeklődni) hol a forrás. előzmény
Oszd meg másokkal is!
Belépés
E-mail cím:
Jelszó:

cvonline.hu
»Szoftverfejlesz-tő
»Java fejlesztő (Szeged)
»SW fejlesztő- matematikai megközelítésben
»C# fejlesztő
»C++ fejlesztő
»Üzemeltetési vezető
» még több állás
Kérdésed van?
Problémád, kérdésed van? Segítünk neked is. Csak kattints ide!
RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Árnyék1.260
»Robi80920
»silentworks910
»szabofe860
»Galovics720
»bubori.attila720
»djjjozsi690
»Riha590
»Frostech0570
»Kukipapa550
A nap kifejezései
»Microsoft Office
»ECMA
»Metódus
» ugrás a wikire
Hírek
»Arckövetéssel bővít az új Kinect for Windows SDK 1.5
»Az általános műveltség része kellene, hogy legyen a programozni tudás?
»Újra programozni fog a Facebook alapítója és multimilliárdos elnöke
» több hír
PC Fórum hírek
»Hetedik születésnapját ünnepli a YouTube
»Elvennék és felhasználóinak adnák a Facebook összes pénzét
»Rejtélyes ikont dugdosgat a Microsoft a Windows 8-ban
»Út a Windows 8-ig - a Windows rendszerek három évtizedének története, képekben
»Mától bárki regisztrálhat a so.cl-ra, a Microsoft közösségi oldalára
»Megérkeztek az első képek az Unreal Engine 4 játékmotorról
»Itt az első videó a a Firefox Windows 8-as változatáról
»Nyártól akár 150 megabites nethozzáférést is ad az Invitel
Top wikieditorok
»Doi
»Sting
»FlamingClaw
»Argathron
»Csaboka2
»Muki987
»NevemTeve
»Ivn
»Kelemzol
»Joexy
» ugrás a wikire