<?php /** * stock_ticker * * Generate an HTML stock ticker with current quotes. * * @version 3.2 * @author Contributors at eXorithm * @link /algorithm/view/stock_ticker Listing at eXorithm * @link /algorithm/history/stock_ticker History at eXorithm * @license /home/show/license * * @param array $symbols stocks to go in the ticker * @param string $background_color (hex color code) color of the ticker background * @param string $stock_color (hex color code) color of the stock symbols * @param string $price_color (hex color code) color of the prices * @param string $up_color (hex color code) color of gains * @param string $down_color (hex color code) color of loses * @param number $speed speed of scrolling * @return string HTML */ function stock_ticker($symbols=array(0=>'AAPL',1=>'GOOG',2=>'DOW',3=>'GCG13.CMX',4=>'P'),$background_color='dddddd',$stock_color='000000',$price_color='0000bb',$up_color='008000',$down_color='ff0000',$speed=6) { sort($symbols); if ($background_color==$stock_color) { // something's wrong, colors weren't specified $background_color = invert_color($background_color); } $return = '<div align="center"> <marquee bgcolor="#'.$background_color.'" loop="20" scrollamount="'.$speed.'">'; foreach ($symbols as $symbol) { $data = file_get_contents("http://quote.yahoo.com/d/quotes.csv?s=$symbol&f=sl1d1t1c1ohgv&e=.csv"); $values = explode(",", $data); $lasttrade = $values[1]; $change = $values[4]; $return .= "<span style=\"color:#$stock_color\">$symbol</span> "; $return .= "<span style=\"color:#$price_color\">$lasttrade</span> "; if ($change<0) $return .= "<span style=\"color:#$down_color\">$change</span> "; else $return .= "<span style=\"color:#$up_color\">$change</span> "; $return .= " "; } $return .= '</marque> </div>'; return $return; } /** * invert_color * * Invert a color. * * @version 0.1 * @author Contributors at eXorithm * @link /algorithm/view/invert_color Listing at eXorithm * @link /algorithm/history/invert_color History at eXorithm * @license /home/show/license * * @param string $color (hex color code) * @return string hex color code */ function invert_color($color='008080') { $new = ''; for ($i=0;$i<3;$i++){ $c = 255 - hexdec(substr($color,(2*$i),2)); $c = dechex($c); $new .= (strlen($c) < 2) ? '0'.$c : $c; } return $new; } ?>