FAQ |
Kalender |
![]() |
#11 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
|
||
![]() |
![]() |
![]() |
#12 | |||
|
||||
Klarade millennium-buggen
|
Tack för alla svar men jag hittar fortfarande inte något som hjälper mig.
Jag vill alltså att det med klartext genererar pris för en dollar i svenska kronor i format 7.68 på min sida. Hur lyckas man? |
|||
![]() |
![]() |
![]() |
#13 | |||
|
||||
Har WN som tidsfördriv
|
http://www.google.com/search?hl=xx-pirate&...K&btnG=Searrrch
Det borde inte vara så svårt att bara köra en file_get_contents() mot den urlen och sedan med hjälp av regexp plocka ut vad du vill ha? |
|||
![]() |
![]() |
![]() |
#14 | ||
|
|||
Supermoderator
|
Läs här och kontakta Forex så får du ta del av deras valutakurser kostnadsfritt i Xml-format om du tecknar avtal med dem
http://www.forex.se/page.asp?sectionId=402 |
||
![]() |
![]() |
![]() |
#15 | ||
|
|||
Klarade millennium-buggen
|
Nicklas: Är inte Forex kurser exkl. deras avgifter?
Har kollat emot Swedbank, Valuta.se, Forex, Google, mfl och alla har visat olika kurser. Vilken skall man gå efter? |
||
![]() |
![]() |
![]() |
#16 | ||
|
|||
Supermoderator
|
Citat:
Ska man erbjuda kurser i en tjänst så ska man nog försöka använda den bank som man växlar hos. |
||
![]() |
![]() |
![]() |
#17 | ||
|
|||
Bara ett inlägg till!
|
Citat:
Så hämtar dollarkursen (men scriptet) , sen spara du det i en variabel och tar det gånger ditt timpris och tittut.... Du har ditt timpris i dollar som uppdateras live på din sida. easy as apple pie |
||
![]() |
![]() |
![]() |
#18 | ||
|
|||
Klarade millennium-buggen
|
Det kan ju vara klokt att försöka använda samma valutakälla som du sen kommer att använda för växling av valutan. Jag menar att du använder samma bank som klla för själva växelkursen där du sen växlar in pengarna till svenska kronor, annar skommer växelkurserna inte att stäma alls med vad du själv får betalt av banken, vilket gör att du kan komma att drabbas av onödigt höga valutakostnader.
|
||
![]() |
![]() |
![]() |
#19 | ||
|
|||
Nykomling
|
Färdigt skript:
Kod:
<?php /* * File: CurrencyConverter.php * Author: Simon Jarvis * Copyright: 2005 Simon Jarvis * Date: 10/12/05 * Link: http://www.white-hat-web-design.co.uk/articles/php-currency-conversion.php * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details: * http://www.gnu.org/licenses/gpl.html * */ class CurrencyConverter { var $xml_file = "http://www.ecb.int/stats/eurofxref/e...aily.xml"; var $mysql_host, $mysql_user, $mysql_pass, $mysql_db, $mysql_table; var $exchange_rates = array(); //Load Currency Rates function CurrencyConverter($host,$user,$pass,$db,$tb) { $this->mysql_host = $host; $this->mysql_user = $user; $this->mysql_pass = $pass; $this->mysql_db = $db; $this->mysql_table = $tb; $this->checkLastUpdated(); $conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass); $rs = mysql_select_db($this->mysql_db,$conn); $sql = "SELECT * FROM ".$this->mysql_table; $rs = mysql_query($sql,$conn); while($row = mysql_fetch_array($rs)) { $this->exchange_rates[$row['currency']] = $row['rate']; } } /* Perform the actual conversion, defaults to £1.00 GBP to USD */ function convert($amount=1,$from="GBP",$to="USD",$decimals=2) { return(number_format(($amount/$this->exchange_rates[$from])*$this->exchange_rates[$to],$decimals)); } /* Check to see how long since the data was last updated */ function checkLastUpdated() { $conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass); $rs = mysql_select_db($this->mysql_db,$conn); $sql = "SHOW TABLE STATUS FROM ".$this->mysql_db." LIKE '".$this->mysql_table."'"; $rs = mysql_query($sql,$conn); if(mysql_num_rows($rs) == 0 ) { $this->createTable(); } else { $row = mysql_fetch_array($rs); if(time() > (strtotime($row["Update_time"])+(12*60*60)) ) { $this->downloadExchangeRates(); } } } /* Download xml file, extract exchange rates and store values in database */ function downloadExchangeRates() { $currency_domain = substr($this->xml_file,0,strpos($this->xml_file,"/")); $currency_file = substr($this->xml_file,strpos($this->xml_file,"/")); $fp = @fsockopen($currency_domain, 80, $errno, $errstr, 10); if($fp) { $out = "GET ".$currency_file." HTTP/1.1\r\n"; $out .= "Host: ".$currency_domain."\r\n"; $out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { $buffer .= fgets($fp, 128); } fclose($fp); $pattern = "{<Cube\s*currency='(\w*)'\s*rate='([\d\.]*)'/>}is"; preg_match_all($pattern,$buffer,$xml_rates); array_shift($xml_rates); for($i=0;$i<count($xml_rates[0]);$i++) { $exchange_rate[$xml_rates[0][$i]] = $xml_rates[1][$i]; } $conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass); $rs = mysql_select_db($this->mysql_db,$conn); foreach($exchange_rate as $currency=>$rate) { if((is_numeric($rate)) && ($rate != 0)) { $sql = "SELECT * FROM ".$this->mysql_table." WHERE currency='".$currency."'"; $rs = mysql_query($sql,$conn) or die(mysql_error()); if(mysql_num_rows($rs) > 0) { $sql = "UPDATE ".$this->mysql_table." SET rate=".$rate." WHERE currency='".$currency."'"; } else { $sql = "INSERT INTO ".$this->mysql_table." VALUES('".$currency."',".$rate.")"; } $rs = mysql_query($sql,$conn) or die(mysql_error()); } } } } /* Create the currency exchange table */ function createTable() { $conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass); $rs = mysql_select_db($this->mysql_db,$conn); $sql = "CREATE TABLE ".$this->mysql_table." ( currency char(3) NOT NULL default '', rate float NOT NULL default '0', PRIMARY KEY(currency) ) ENGINE=MyISAM"; $rs = mysql_query($sql,$conn) or die(mysql_error()); $sql = "INSERT INTO ".$this->mysql_table." VALUES('EUR',1)"; $rs = mysql_query($sql,$conn) or die(mysql_error()); $this->downloadExchangeRates(); } } ?> Kod:
<?php include('test.php'); $x = new CurrencyConverter('localhost','user','pass','databas','your_table_name'); ?> 1GBP = <? echo $x->convert(1,'GBP','USD'); ?> USD<br> 1SEK = <? echo $x->convert(1,'SEK','USD'); ?> USD<br> 1USD = <? echo $x->convert(1,'USD','SEK'); ?> SEK<br> |
||
![]() |
![]() |
![]() |
#20 | ||
|
|||
Medlem
|
Bokföringsmässigt, som Conny Westh påpekar ovan, ska man väl egentligen hämta valutakurser från den bank som räknar om valutan. Dvs den bank som står för växlingen till en viss valuta. Annars kanske beräkningen av valutavinst och valutaförlust blir galen. Vet inte om skatteverket har något att säga om det. Om man använder ett valutakonto ska man ändå för bokföringens skull räkna om valutan till månadsgenomsnittet en gång i månaden.
Om man bara vill räkna om priser (utan att börja dra upp faktiska valutavinster/förluster vilket man ju dock måste redovisa senare) är väl ändå det rimligaste att man går till den mest tillförlitliga källan, dvs Sveriges Riksbank. Där kan du få fram månadsgenomsnittet, dagskurser mot olika valutor samt även historik bakåt. http://www.riksbank.se/templates/Page.aspx?id=15867. Jobbar man med Euro som företagsvaluta är nog det bästa att basera sina omräkningspriser på valutakurserna som publiceras av ECB. Valutaomräknaren i Google och den från webservicex.net är inte tillförlitliga och kan i vissa fall skilja avsevärt mot verkliga valutakurser. Det är bra och stabila verktyg för att kolla ungefärliga kurser eller publicera ungefärlig kursinformation - de är absolut inte tillförlitliga nog för en seriös företagare för valutaberäkningar. |
||
![]() |
![]() |
Svara |
|
|