3ndy Skrevet 14. juni 2012 Del Skrevet 14. juni 2012 (endret) Vi har tideligere hatt en aksjeportefølje på nettsiden http://ha-invest.dk/ver2/?page_id=26 den klarer dessverre ikke å hente kurs data lenger da Yahoo har gjort endringer på sine nettsider. Jeg har kommet frem til et php script, som klarer å hente ut kurser, men får det ikke til å fungere sammen med vårt gamle system. Har ikke altfor mye kompetanse rundt dette, så trenger litt hjelp. En liten belønning fås hvis du klarer å sette det opp, send meg gjerne en melding. Det er mulig det bare er noen små greier som må portes over fra scripte som fungerer til det orginale... Her er et script som fungerer: &--#60;?php function getQuote($symbol) { $symbol = urlencode( trim( substr(strip_tags($symbol),0,7) ) ); $yahooCSV = "http://finance.yahoo.com/d/quotes.csv?s=$symbol&f=sl1d1t1c1ohgvpnbaejkr&o=t"; $csv = fopen($yahooCSV,"r"); if($csv) { list($quote['symbol'], $quote['last'], $quote['date'], $quote['timestamp'], $quote['change'], $quote['open'], $quote['high'], $quote['low'], $quote['volume'], $quote['previousClose'], $quote['name'], $quote['bid'], $quote['ask'], $quote['eps'], $quote['YearLow'], $quote['YearHigh'], $quote['PE']) = fgetcsv($csv, ','); fclose($csv); return $quote; } else { return false; } } $gQuote = getQuote("DNB.OL"); //Returns an array of stock information echo "DNB ASA \t".$gQuote['last']."&--#60;br/&--#62;"; ?&--#62; Her er det gamle oppsette som fungerte før: &--#60;p&--#62;Kursene er opptil 20 minutter forsinket &--#60;/p&--#62; &--#60;? include('connectDB.php'); // first, get the external data from yahoo! finance $hente_query = mysql_query("select kode from portefolje_ny order by id"); $sporring = ('http://finance.yahoo.com/d/quotes.csv?f=sl1&e=.csv&s='); while ($row = mysql_fetch_array($hente_query)) { $ticker=$row["kode"]; $sporring .= ('+'); $sporring .= $ticker . ".OL"; } $lines = http_getFileAsArray($sporring); echo count($lines); $kurs_array = Array(); for ($i=0; $i&--#60;count($lines); $i++) { $line = $lines[$i]; $line = str_replace('"', '', $line); $line = str_replace('.OL', '', $line); list($symbol, $price) = split(',',$line); $kurs_array[strtoupper($symbol)] = $price; } //funksjon for å hente en fil ved hjelp av http function http_getFileAsArray($url) { $server ="finance.yahoo.com"; $file = strstr($url,"/d"); $port = 80; $fp = fsockopen($server, $port); if ($fp) { fputs($fp,"GET http://$server$file HTTP/1.0\nHost: $server\n\n"); $lines = array(); while ($line = fgets($fp, 4096)) $lines[] = $line; fclose($fp); } if ($html == "" || !$fp) { // try fopen() $fp = fopen($url, "r"); if ($fp) { $lines = array(); while ($line = fgets($fp, 4096)) $lines[] = $line; fclose($fp); } } return $lines; } ?&--#62; &--#60;table cellspacing="0" style="font-size:9px;font-family:arial;text-align:center;line-height:10px;width:600px;"&--#62; &--#60;tr&--#62; &--#60;td&--#62;&--#60;strong&--#62;Selskap&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Kjøpsdato&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Volum&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Kjøpskurs&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Kurs sist torsdag&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Kurs&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Endring fra sist&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Avkastning i kroner&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Avkastning i prosent&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;strong&--#62;Verdi&--#60;/strong&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;?php $query = mysql_query("SELECT * FROM portefolje_ny ORDER BY Navn ASC"); while ($array = mysql_fetch_array($query)){ $navn = $array['Navn']; $kode = $array['Kode']; $volum = $array['Volum']; $kjopskurs = $array['Kjopskurs']; $kjopsdato = $array['Kjopsdato']; $torsdag = $array['Torsdag']; $kurs = $kurs_array[strtoupper($kode)]; ?&--#62; &--#60;tr&--#62; &--#60;td&--#62;&--#60;?php echo $navn; ?&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;?php echo $kjopsdato; ?&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;?php echo $volum; ?&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;?php echo $kjopskurs; ?&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;?php echo $torsdag; ?&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;?php echo $kurs; ?&--#62;&--#60;/td&--#62; &--#60;td&--#62;&--#60;?php if( $kurs != 0) { $endringFraSist = round(((($kurs - $torsdag)/$kurs) * 100),2); if($torsdag != 0) { echo $endringFraSist . "%"; } else { echo "0%"; } } else{ echo "0%"; } ?&--#62; &--#60;/td&--#62; &--#60;td&--#62; &--#60;?php $avkastnIKroner = round(($volum*$kurs)-($volum*$kjopskurs),2); echo $avkastnIKroner; ?&--#62; &--#60;/td&--#62; &--#60;td&--#62; &--#60;?php $avkastningIProsent = round((($kurs - $kjopskurs) * 100)/$kjopskurs,2); if ($kjopskurs != 0){ echo $avkastningIProsent . "%"; } else{ echo "0"; } ?&--#62; &--#60;/td&--#62; &--#60;td&--#62;&--#60;?php echo $verdi= (round($volum * $kurs, 2)); ?&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;?php $samletVerdi+=$verdi; } ?&--#62; &--#60;/table&--#62; &--#60;br /&--#62; &--#60;p&--#62;Porteføljen har en samlet verdi på &--#60;?php echo round($samletVerdi,2) ?&--#62; kroner.&--#60;/p&--#62; &--#60;?php if (current_user_can("manage_options")) : ?&--#62; &--#60;a href="http://ha-invest.dk/ver2/wp-content/*************/settInn.php" target="_blank"&--#62;Endre/Legg til&--#60;/a&--#62; &--#60;a href="http://ha-invest.dk/ver2/wp-content/*************/torsdag.php" target="_blank"&--#62;Sett "Kurs sist torsdag"&--#60;/a&--#62; &--#60;?php endif; ?&--#62; settinn.php: &--#60;?php include ('connectDB.php'); if (isset($_POST["SendInn"])) { $navn = $_POST["navn"]; $kode = $_POST["kode"]; $volum = $_POST["volum"]; $kjopskurs = $_POST["kjopskurs"]; $kjopsdato = $_POST["kjopsdato"]; $settInnSporring = mysql_query("INSERT INTO portefolje_ny (Navn, Kode, Volum, Kjopskurs, Kjopsdato) VALUES ('$navn', '$kode', '$volum', '$kjopskurs', '$kjopsdato')"); if (!$settInnSporring) { echo "Det har skjedd en feil."; } else{ echo "Selskap er lagt til i porteføljen."; } } if (isset($_GET["name"])){ $navnSlett = $_GET["name"]; mysql_query("DELETE FROM portefolje_ny WHERE Navn='$navnSlett'"); } ?&--#62; &--#60;form method="POST" action="settInn.php"&--#62; &--#60;table&--#62; &--#60;tr&--#62; &--#60;td&--#62;Navn&--#60;/td&--#62; &--#60;td&--#62;&--#60;input type="text" name="navn"&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;tr&--#62; &--#60;td&--#62;Kode&--#60;/td&--#62; &--#60;td&--#62;&--#60;input type="text" name="kode"&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;tr&--#62; &--#60;td&--#62;Volum&--#60;/td&--#62; &--#60;td&--#62;&--#60;input type="text" name="volum"&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;tr&--#62; &--#60;td&--#62;Kjøpskurs&--#60;/td&--#62; &--#60;td&--#62;&--#60;input type="text" name="kjopskurs"&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;tr&--#62; &--#60;td&--#62;Kjøpsdato(dd.mm.åå)&--#60;/td&--#62; &--#60;td&--#62;&--#60;input type="text" name="kjopsdato"&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;tr&--#62; &--#60;th colspan="2"&--#62;&--#60;input type="submit" name="SendInn" value="Legg til"&--#62;&--#60;/td&--#62; &--#60;/tr&--#62; &--#60;/table&--#62; &--#60;/form&--#62; &--#60;table border=2&--#62; &--#60;?php $sporring = mysql_query("SELECT * FROM portefolje_ny ORDER BY Navn ASC"); while($array = mysql_fetch_array($sporring)){ $navn = $array['Navn']; $kode = $array['Kode']; ?&--#62; &--#60;tr&--#62;&--#60;td&--#62;&--#60;?php echo $navn;?&--#62;&--#60;/td&--#62;&--#60;td&--#62;&--#60;a href="settInn.php?name=&--#60;?php echo $navn; ?&--#62;" &--#62;Slett&--#60;/a&--#62;&--#60;/tr&--#62; &--#60;?php } ?&--#62; &--#60;/table&--#62; torsdag.php: &--#60;?php include('connectDB.php'); $hente_query = mysql_query("select kode from portefolje_ny order by id"); $sporring = ('http://finance.yahoo.com/d/quotes.csv?f=sl1&e=.csv&s='); while ($row = mysql_fetch_array($hente_query)) { $ticker=$row["kode"]; $sporring .= ('+'); $sporring .= $ticker . ".OL"; } $lines = http_getFileAsArray($sporring); $kurs_array = Array(); for ($i=0; $i&--#60;count($lines); $i++) { $line = $lines[$i]; $line = str_replace('"', '', $line); $line = str_replace('.OL', '', $line); list($symbol, $price) = split(',',$line); $kurs_array[strtoupper($symbol)] = $price; } //funksjon for å hente en fil ved hjelp av http function http_getFileAsArray($url) { $server ="finance.yahoo.com"; $file = strstr($url,"/d"); $port = 80; $fp = fsockopen($server, $port); if ($fp) { fputs($fp,"GET http://$server$file HTTP/1.0\nHost: $server\n\n"); $lines = array(); while ($line = fgets($fp, 4096)) $lines[] = $line; fclose($fp); } if ($html == "" || !$fp) { // try fopen() $fp = fopen($url, "r"); if ($fp) { $lines = array(); while ($line = fgets($fp, 4096)) $lines[] = $line; fclose($fp); } } return $lines; } $torsdagquery = mysql_query("SELECT * FROM portefolje_ny"); while($torsdagarray = mysql_fetch_array($torsdagquery)){ $kode = $torsdagarray['Kode']; echo $kode; $kurs = $kurs_array[strtoupper($kode)]; echo $kurs; $settInn = mysql_query("UPDATE portefolje_ny SET torsdag='" . $kurs . "' WHERE Kode='" . $kode . "'"); } ?&--#62; Si gjerne ifra hvis dere trenger noe mer informasjon. Endret 14. juni 2012 av 3ndy Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå