关于 php 数据采集

//首先将别人的网页取回,如:

$str = file_get_contents("http://club.21php.com/showthread.php?t=10000");

//再用正则表达式提取其中有用的部分

preg_match("|(.+)|isU”,$str,$text);

//最后入库或生成自己的静态页面:

file_put_contents (“text1.htm”,$text[1]);

?>

4.2不能用这个函数,你可以用FILE函数取代:

$str=implode(“”,file(“http://club.21php.com/showthread.php?t=10000″));

set_time_limit(0);

$max_time=3600;

$cache_file='cache_yahoo.txt';

$nowtime=time();

if(!file_exists($cache_file)){

$filetime=0;

}else{

$filetime=filemtime($cache_file);

}

if($filetime+$max_time<$nowtime){

//更新

ob_start();

function get_yahoo_info($url){

$content=file_get_contents($url);

$pattern='|
(.*) ((.*)) (.*) |U’;

preg_match_all($pattern,$content,$out);

$info['company_name']=$out[1][0];

$info['company_stock']=$out[2][0];

$pattern=’|< td class="yfnc_tablehead1" width="52%">最近交易价: (.*)

|U’;

preg_match_all($pattern,$content,$out);

$info['stock_price']=$out[1][0];

$pattern=’| 涨跌: (.*)

|U’;

preg_match_all($pattern,$content,$out);

$info['stock_upordown']=$out[1][0];

$pattern=’| 市值: (.*)

|U’;

preg_match_all($pattern,$content,$out);

$info['stock_value']=$out[1][0];

return $info;

}

$urls=explode(‘,’,file_get_contents(‘url.txt’));

$i=0;

$matchs=array();

foreach($urls as $url){

$rs=get_yahoo_info($url);

if(!empty($rs)){

$matchs[$i]=$rs;

$i++;

$rs=”;

}

}

//print_r(get_yahoo_info(‘http://cn.finance.yahoo.com/q?s=000063.SZ’));

?>

$i=1;

foreach($matchs as $match){

?>

$i++;

}?>

公司名称
股票代号
股票价格
股票涨幅
市值

$content=ob_get_clean();

$fp=fopen($cache_file,'w');

if(!$fp)echo '打开文件失败';

if (flock($fp, LOCK_EX)) { // 进行排它型锁定

if(!fwrite($fp, $content))echo '文件写入失败';

flock($fp, LOCK_UN); // 释放锁定

} else {

//echo "Couldn't lock the file !";

if(!fwrite($fp, $content))echo '文件写入失败';

}

fclose($fp);

//echo 'cache time:'.time();

echo $content;

}else{

//echo 'cache!';

echo file_get_contents($cache_file);

}

?>

http://www.php.net/manual/zh/function.file-get-contents.php

php探针

php cms 管理系统

http://zhidao.baidu.com/question/33957550.html

Leave a Reply

相关日志: