Hvala na savetu uputio si me na pravu stranu. evenčuli sam uzeo vrednosti koje mi trebaju uz pomoć 'serialize()'. Međutim sad imam drugi problem:
Imam dva fajla 'pdoc.php' i 'ws.php'. U 'pdoc.php' uzimam srednji kurs (EUR USD CHF) pomoću 'file_get_contents()', a u fajlu 'ws.php' uzimam srednji kurs pomoću web servisa NBS. Evo koda:
[pdoc.php]
Code:
<?php
ini_set('user_agent', 'Mozilla Firefox');
$date = date("d.m.Y");
$url = 'http://www.nbs.rs/internet/latinica/scripts/kl.html?datum=';
$url.= $date.'&broj=br.&godina=2009&vrsta=3&eksport=html&:langkl:';
$address = file_get_contents($url);
if (!$address)
{echo '<p align=\'center\'>Failed</p>';}
else{
// Evropska unija - EUR
$valuta = 'EUR';
$value = strpos($address, $valuta);
$EUR = '';
for ($i = $value + 87; $i <= $value + 93; $i++) {
$EUR .= $address{$i};
}
// Švajcarska - CHF
$valuta = 'CHF';
$value = strpos($address, $valuta);
$CHF = '';
for ($i = $value + 87; $i <= $value + 93; $i++) {
$CHF .= $address{$i};
}
// SAD - USD
$valuta = 'USD';
$value = strpos($address, $valuta);
$USD = '';
for ($i = $value + 87; $i <= $value + 93; $i++) {
$USD .= $address{$i};
}}
echo 'EUR['.$EUR.'] USD['.$USD.'] CHF['.$CHF.']';
?>
[ws.php]
Code:
<?php
class AuthenticationHeader{
function __construct() {
$this->UserName='TempTest';
$this->Password='TempTestPassword';
$this->LicenceID=0;
}
public $UserName;
public $Password;
public $LicenceID;
}
class NBSSoapClient extends SoapClient {
function __construct($wsdl,array $options){
parent::__construct($wsdl,$options);
$auth=new AuthenticationHeader;
$authvalues = new SoapVar($auth, SOAP_ENC_OBJECT);
$header = new SoapHeader('http://www.nbs.rs/TempExchangeRatesService','AuthenticationHeader', $authvalues, false);
$this->__setSoapHeaders(array($header));
}
function __doRequest($request, $location, $action, $version) {
$request=mb_ereg_replace('ns1:','',$request);
$request=mb_ereg_replace(':ns1','',$request);
$request=mb_ereg_replace('SOAP-ENV','soap',$request);
$request=mb_ereg_replace('Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"','Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"',$request);
return parent::__doRequest($request, $location, $action, $version);
}
}
class GetCurrentExchangeRatesXML{
function __construct($ID=3) {
$this->nExchangeRatesListTypeID=$ID;
}
public $nExchangeRatesListTypeID;
}
$NBSclient = new NBSSoapClient("http://webservices.nbs.yu/Comm...ExchangeRatesService.asmx?WSDL",array(
'soap_version' => SOAP_1_1,
'style' => SOAP_DOCUMENT,
'encoding' => 'utf-8',
'use' => SOAP_LITERAL
));
$params_tri= new GetCurrentExchangeRatesXML(3); //ovo je za srednji kurs
$response=$NBSclient->GetCurrentExchangeRatesXML($params_tri);
$tmpStr=serialize($response);
$EUR=explode(" ",substr($tmpStr,strpos($tmpStr,"European union"),110));
$USD=explode(" ",substr($tmpStr,strpos($tmpStr,"United States"),110));
$CHF=explode(" ",substr($tmpStr,strpos($tmpStr,"Switzerland"),107));
echo 'EUR['.$EUR[count($EUR)-1].'] USD['.$USD[count($USD)-1].'] CHF['.$CHF[count($CHF)-1].']';
Izvršavanje i jednog i drugog fajla nalokalu ('
http://localhost/hellohello/ws/ws.php' i '
http://localhost/hellohello/ws/pdoc.php') ispisuje u browser isto :
Code:
EUR[94,5096] USD[69,1669] CHF[61,5818]
Doduše 'pdoc.php' ispisuje tačke umesto zareza (to je sigurno bitno!)
A kada ih uploadujem na net [neki sajt na loopiji] ni jedan ni drugi nemogu da uzmu srednji kurs.
U browseru '
http://www.nekisajt.co.rs/temp/pdoc.php' --> daje rezultat:
Code:
Failed
EUR[] USD[] CHF[]
Izgleda da 'file_get_contents()' nije dozvoljeno na tom njihovom serveru jer ova fuja nije vratila vrednost.
U browseru '
http://www.nekisajt.co.rs/temp/ws.php' --> daje rezultat:
Code:
The page cannot be displayed
I šta sad ja da radim na lokalu rade oba načina, a kad uploadujem na net neradi nijedan ? Zašto je to tako ne znam ? Ako neko zna neka pomogne, unapred hvala. ..dugačak post šta da se radi..