当前位置: 首页 > 图文教程 > 网络编程 > PHP > 抓取YAHOO股票报价的类

PHP
正确理解PHP程序编译时的错误信息
PHP开发中关于文件操作的疑难问答
PHP.MVC的模板标签系统之标签行为调度
PHP安全配置之实现安全的两个重点
用PHP+java实现自动新闻滚动窗口
PHP编程技巧:看实例学正则表达式
PHP一些常用的正则表达式
PHPUnit袖珍指南之自动测试
PHPUnit袖珍指南之PHPUnit的目的
PHPUnit袖珍指南之安装PHPUnit
PHPUnit袖珍指南之命令行测试工具
PHP中使用crypt()实现用户身份验证
用PHP+MySQL搭建聊天室
如何编译PHP源代码
安全基础:PHP后门的隐藏技巧测试报告
PHP创建和使用session cookie变量
php的curl实现get和post
PHP自动适应范围的页码分页程序
Perl处理日期时间的技巧
php直接调用文本文件内容

PHP 中的 抓取YAHOO股票报价的类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 49 ::
收藏到网摘: n/a

实时抓取YAHOO股票报价的函数,大家可以学习一下思路跟具体的代码,自己可以拓宽下。
复制代码 代码如下:

<?
function getYahooQuote($stockSymbol = "CCR")
{
if (!$targetURL) $targetURL = "http://finance.yahoo.com/q?s=$stockSymbol&d=t"; //设定要抓取的URL目标
$fd = fopen("$targetURL", "r");
$stopExtract = 0;
$startExtract = 0;
while (!feof($fd))
{
$buffer = fgets($fd, 4096);
//echo trim($buffer)."\n";
if (strstr($buffer, "rowspan=3"))
{
//echo "extract started at line #$lineCount\n";
$startExtract = 1;
}
if ($startExtract && !$stopExtract)
{
if (strstr($buffer, "<a"))
{
$startPos = strrpos($buffer, "<");
$buffer = substr($buffer, $startPos);
}
//$text = trim(strip_tags($buffer));
//echo trim($buffer)."\n";
$buffer = str_replace("\n\r", " ", "$buffer");
if (strstr($buffer, "http://ichart.yahoo.com/v?s=$stockSymbol"))
{
//echo "ichart found!";
$stopExtract = 1;
}
$capturedHTML .= $buffer;
}
if ($startExtract && strstr($buffer, "<br>"))
{
$stopExtract = 1;
//echo "extract stopped at line #$lineCount\n";
echo $capturedHTML;
break;
}
$lineCount ;
}
fclose($fd);
}
//以下为抓取的一个例子
$symbols = array('CCR', 'IIXL','SAPE','WBVN' );
$symbolCount = count($symbols);
for ($i=0; $i< $symbolCount; $i )
{
echo "$symbols[$i]<br>";
getYahooQuote("$symbols[$i]");
}
?>