[0-9]+\.[0-9]+<\/b>)/", $contents, $quote))
{
//print value of index or listing
echo "
$quote[1] | ";
//print change in points or dollars
//green for positive, red for negative
if (preg_match("/(Change
\-[0-9]+\.[0-9]+)/",
$contents, $quote))
{
//extra specificity of string searched due to possibility of negative EPS
//and positive change, resulting in two numbers displayed as change
$quote[1] = substr($quote[1], 29);
echo "$quote[1] | ";
}
if (preg_match("/(\+[0-9]+\.[0-9]+)/", $contents, $quote))
echo "$quote[1] | ";
//print change in percent
//green for positve, red for negative
if (preg_match("/(\-[0-9]+\.[0-9]+\%)/", $contents, $quote))
echo "$quote[1] | ";
if (preg_match("/(\+[0-9]+\.[0-9]+\%)/", $contents, $quote))
echo "$quote[1] | ";
}
//if the value of $symbols exceeds 1000 points (indices only)
else if (preg_match("/([0-9]+\,[0-9]+\.[0-9]+<\/b>)/", $contents, $quote))
{
//print value of index
echo "$quote[1] | ";
//print change in points or dollars
//green for positive, red for negative
if (preg_match("/(\-[0-9]+\.[0-9]+)/", $contents, $quote))
echo "$quote[1] | ";
if (preg_match("/(\+[0-9]+\.[0-9]+)/", $contents, $quote))
echo "$quote[1] | ";
//print change in percent
//green for positive, red for negative
if (preg_match("/(\-[0-9]+\.[0-9]+\%)/", $contents, $quote))
echo "$quote[1] | ";
if (preg_match("/(\+[0-9]+\.[0-9]+\%)/", $contents, $quote))
echo "$quote[1] | ";
}
//if the value of $symbols cannot be determined
else
{
echo "No quote available.";
}
}
//end function retrieve($symbols)
//if $symbols is not an index
//display technical data
function techdata($symbols)
{
//obtain a page containing data regarding $symbols
$url = "http://finance.yahoo.com/q?s=$symbols&d=t";
if (!($fp = fopen($url, "r")))
{
echo "Unable to open page.";
exit;
}
//if opening is successful, read 100000 bytes from opened page
$contents = fread($fp, 100000);
//close page
fclose($fp);
if ($symbols != "^DJI" && $symbols != "^IXIC" && $symbols != "^GSPC"
&& $symbols != "^dji" && $symbols != "^ixic" && $symbols != "^gspc")
{
echo "
";
//Market
//NYSE - New York Stock Exchange
//NasdaqNM - Nasdaq National Market
//AMEX - American Stock Exchange
echo "Exchange | ";
if (preg_match("/(NYSE:$symbols)/", $contents, $quote))
echo "NYSE |
";
if (preg_match("/(NasdaqNM:$symbols)/", $contents, $quote))
echo "NASDAQ | ";
if (preg_match("/(AMEX:$symbols)/", $contents, $quote))
echo "American | ";
//P/E Ratio - Price to Earnings
if (preg_match("/(P\/E
[0-9]+\.[0-9]+)/", $contents, $quote))
{
$quote[1] = substr($quote[1], 7);
echo "P/E | ";
echo "$quote[1] |
";
}
else {
echo "P/E | ";
echo "N/A |
";
}
//PEG - P/E / Growth
if (preg_match("/(PEG
[0-9]+\.[0-9]+)/", $contents, $quote))
{
$quote[1] = substr($quote[1], 7);
echo "PEG | ";
echo "$quote[1] |
";
}
else {
echo "PEG | ";
echo "N/A |
";
}
//EPS - Earnings Per Share
/**/
if (preg_match("/((ttm)<\/small>
[0-9]+\.[0-9]+)/",
$contents, $quote))
{
//$quote[1] = substr($quote[1], 11);
echo "Earnings | ";
echo "$quote |
";
}
else if (preg_match("/((ttm)<\/small>
\-[0-9]+\.[0-9]+)/",
$contents, $quote))
{
//$quote[1] = substr($quote[1], 11);
echo "Earnings | ";
echo "$quote |
";
}
else {
echo "Earnings | ";
echo "N/A |
";
}
/**/
//Market Capitalization
if (preg_match("/(Mkt Cap
[0-9]+\.[0-9]+)/", $contents, $quote))
{
$quote[1] = substr($quote[1], 11);
echo "Market Cap | ";
echo "$$quote[1] ";
if (preg_match("/(Mkt Cap [0-9]+\.[0-9]+B)/", $contents, $quote))
echo "Billion |
";
if (preg_match("/(Mkt Cap
[0-9]+\.[0-9]+M)/", $contents, $quote))
echo "Million";
}
else {
echo "Market Cap | ";
echo "N/A |
";
}
//Volume - Shares Traded (Daily)
if (preg_match("/(Volume
[0-9]+\,[0-9]+\,[0-9]+)/", $contents, $quote)
|| preg_match("/(Volume
[0-9]+\,[0-9]+)/", $contents, $quote)
|| preg_match("/(Volume
[0-9]+)/", $contents, $quote))
{
$quote[1] = substr($quote[1], 10);
echo "Volume | ";
echo "$quote[1] |
";
}
else {
echo "Volume | ";
echo "N/A |
";
}
//Volume - Shares Traded (Daily)
if (preg_match("/(Avg Vol
[0-9]+\,[0-9]+\,[0-9]+)/", $contents, $quote)
|| preg_match("/(Avg Vol
[0-9]+\,[0-9]+)/", $contents, $quote))
{
$quote[1] = substr($quote[1], 11);
echo "Average Volume | ";
echo "$quote[1] |
";
}
else {
echo "Average Volume | ";
echo "N/A |
";
}
echo "
";
}
}
?>