Prog.Hu

Árfolyamlekérdezés szerverről nem megy :-(
10

2013-09-08T21:29+02:00
basic
basicProg.Hu
regisztrált tag
Sziasztok!

Készítettem egy funkciót, ami a Szlovák Nemzeti Bank szerveréről tölti le az aktuális árfolyamokat.

Problémám, hogy amint feltöltöm a tárhelyszolgáltatóhoz, ezt írja: HIBA! - " A "http://www.mnb.hu" hírcsatornája nem található, vagy nincs internet kapcsolat! ... "

LocalHost-on műxik, de mikor feltöltöm nem.

Forduljak a szolgáltatóhoz, vagy én rontottam el valamit?

A forráskód:

//  --------------------------------------------------------------------------------------------------------------------------------------
function invoice_exchange_NBS($penznem) {
//  --------------------------------------------------------------------------------------------------------------------------------------

$url="http://www.nbs.sk/KL/KLEN.JS";

         // --- --- --- DÁTUM / IDŐ meghatározása
       
                        $ARFOLYAM_IDOPONT = (date ("Y. F j. - D")) ;
       
         // --- --- --- HÓNAPOK meghatározása
       
                        $ARFOLYAM_IDOPONT = str_replace("January","január",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("February","február",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("March","március",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("April","április",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("May","május",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("June","június",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("July","július",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("August","augusztus",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("September","szeptember",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("October","október",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("November","november",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("December","december",$ARFOLYAM_IDOPONT);
       
         // --- --- --- NAPOK meghatározása
       
                        $ARFOLYAM_IDOPONT = str_replace("Mon","hétfő",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("Tue","kedd",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("Wed","szerda",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("Thu","csütörtök",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("Fri","péntek",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("Sat","szombat",$ARFOLYAM_IDOPONT);
                        $ARFOLYAM_IDOPONT = str_replace("Sun","vasárnap",$ARFOLYAM_IDOPONT);               
       
        //  --------------------------------------------------------------------------------------------------------------------------------------
       
        // Ellenőrizzük, hogy megvan-e a fájl...
        if(@file_get_contents($url)!=false)
        {

                        $file=file($url);
                        for($i=0;$i<sizeof($file);$i++){
                               
                                if         (preg_match("/ALIGN='center'>$penznem</", $file[$i]))       
                                {
                                $penz_nem = $file[$i];
                                $penz_nem = strip_tags($file[$i]);
                                $penz_nem = str_replace('document.write("','', $penz_nem);
                                $penz_nem = str_replace('");','', $penz_nem);
                                $penz_nem = str_replace('&nbsp;','', $penz_nem);
                                $penz_nem = str_replace(' ','', $penz_nem);
                                $penz_nem = str_replace("\n",'', $penz_nem);
                       
                                $penznem_valto = strip_tags($file[$i+1]);
                                $penznem_valto = str_replace('document.write("','', $penznem_valto);
                                $penznem_valto = str_replace('");','', $penznem_valto);
                                $penznem_valto = str_replace('&nbsp;','', $penznem_valto);
                                $penznem_valto = str_replace(' ','', $penznem_valto);
                                $penznem_valto = str_replace("\n",'', $penznem_valto);
                       
                                $penznem_ertek = strip_tags($file[$i+2]);
                                $penznem_ertek = str_replace('document.write("','', $penznem_ertek);
                                $penznem_ertek = str_replace('");','', $penznem_ertek);
                                $penznem_ertek = str_replace('&nbsp;','', $penznem_ertek);
                                $penznem_ertek = str_replace(' ','', $penznem_ertek);
                                $penznem_ertek = str_replace("\n",'', $penznem_ertek);
                                } // IF
                               
                        }//FOR
                       
               
                //$penznem = $penznem_valto . ' ' . $penz_nem . ' <b> = ' . $penznem_ertek . '</b> SKK / ' . $ARFOLYAM_IDOPONT . '.';
                $penznem = $penznem_valto . ' ' . $penz_nem . ' <b> = ' . $penznem_ertek . '</b> SKK';
                return $penznem;

        }
        else // Ellenőrzés: NINCS MEG A FÁJL.
        {
           echo'HIBA! - A "' . $url . '" fájl nem található, vagy nincs internet kapcsolat! / ' . $ARFOLYAM_IDOPONT . '.';
        }

}//FUNCTION

//  --------------------------------------------------------------------------------------------------------------------------------------
        //HASZNÁLAT Pl.:
        echo invoice_exchange_NBS("HUF").' / '.invoice_exchange_NBS("EUR");
        echo "<br /><br />";
        echo invoice_exchange_NBS("USD");
        echo "<br /><br />";
        echo invoice_exchange_NBS("HUF");
//  --------------------------------------------------------------------------------------------------------------------------------------
        // Lekérdezhető árfolyamok:       
        // AUD, BGN, CAD, CZK, DKK, EEK, EUR, GBP, HUF, CHF,
        // JPY, LTL, LVL, NOK, PLN, RON, SEK, USD, XDR
//  --------------------------------------------------------------------------------------------------------------------------------------

?>

Előre is köszi a segítséget!
Mutasd a teljes hozzászólást!
Árfolyamlekérdezés szerverről nem megy :-(
2013-09-08T21:29+02:00
basic
basicProg.Hu
regisztrált tag
A másik:

Nézd meg a manualt: PHP: file - Manual
Idézem:

URL-t is megadhatsz az állomány név paraméter helyén ha a fopen wrappers szolgáltatás be van kapcsolva. Bővebb információk az fopen() leírásánál olvashatóak arról, milyen módon adhatod meg a fájlneveket, valamint érdemes megtekinteni a List of Supported Protocols/Wrappers oldalt a támogatott URL típusok listájának megtekintése gyanánt.


[szerk.]

Nézz utána, hogy a php.ini-ben az allow_url_fopen értéke 0 vagy 1.
Mutasd a teljes hozzászólást!
Oszd meg másokkal is!

No, hát először, is, ezt nem értem:

if(@file_get_contents($url)!=false)
{
$file=file($url);
}

Miért nem így:

if ( ( $file = file($url) ) != false )
{
// ...
}
Mutasd a teljes hozzászólást!
Valószínűleg nincs engedélyezve a file_get_contents()! Vedd ki előle a @-ot, és akkor szvsz egy szép kis hibaüzenet tárul eléd!
Mutasd a teljes hozzászólást!
A másik:

Nézd meg a manualt: PHP: file - Manual
Idézem:

URL-t is megadhatsz az állomány név paraméter helyén ha a fopen wrappers szolgáltatás be van kapcsolva. Bővebb információk az fopen() leírásánál olvashatóak arról, milyen módon adhatod meg a fájlneveket, valamint érdemes megtekinteni a List of Supported Protocols/Wrappers oldalt a támogatott URL típusok listájának megtekintése gyanánt.


[szerk.]

Nézz utána, hogy a php.ini-ben az allow_url_fopen értéke 0 vagy 1.
Mutasd a teljes hozzászólást!
" [szerk.]
Nézz utána, hogy a php.ini-ben az allow_url_fopen értéke 0 vagy 1. "
...
Nálam a LocalHost-on: " allow_url_fopen = On ".

Akkor ezek szerint a szolgáltatómnál " allow_url_fopen = Off " ?

Valószínűleg az lehet, mert mikor a LocalHost-on "Off"-ra állítottam az " allow_url_fopen "-t, nem működött az árfolyamlekérdezés. -> Tehát, forduljak a tárhelyszolgáltatóhoz, hogy állítsák "On"-ra...
Mutasd a teljes hozzászólást!
Valószínűleg az lehet, mert mikor a LocalHost-on "Off"-ra állítottam az " allow_url_fopen "-t, nem működött az árfolyamlekérdezés. -> Tehát, forduljak a tárhelyszolgáltatóhoz, hogy állítsák "On"-ra...


Ez nem az egy-az-egyhez kapcsolat. Ha offra állítod akkor biztos nem megy. De attól, hogy on az nem jelenti, hogy menni fog, csak már lesz rá esély...
Mutasd a teljes hozzászólást!
Kösz... Akkor mi a megoldás?
Mutasd a teljes hozzászólást!
Az, hogy beszélsz a szolgáltatóddal!
Mutasd a teljes hozzászólást!
kiküszöbölve ezt: , hogy az eredmény ez legyen: igazad van!

A pontot a szolgáltzatóval való egyeztetés után adom ...
Mutasd a teljes hozzászólást!
Ez volt a megoldás: " [szerk.] Nézz utána, hogy a php.ini-ben az allow_url_fopen értéke 0 vagy 1. "
Mutasd a teljes hozzászólást!
Oszd meg másokkal is!