话不多说,下面直接来看实现代码。
主要函数只有一个类实现(stock.class.PHP):
$this -> stockId = $stockId;
}
private function getUrl(){
return "http://stockpage.10jqka.com.cn/" . $this -> stockId . "/";
}
private function getPage(){
return file_get_contents($this -> getUrl());
}
//核心,通过正则匹配出 标签名,并将对应的方法的结果替换掉标签占位符
public function getInfo($template){
$html = $this -> getPage();
if( preg_match_all("/{([^}]*)}/",$template,$result) ){
foreach($result[1] as $index => $fun){
$template = str_replace($result[0][$index],$this -> $fun($html),$template);
}
}
return mb_convert_encoding($template,"GBK","UTF-8"); //Windows的命令提示符编码是GBK
}
private function match($pattern,$html,$itemIndex = 1){
$pattern = '/' . str_replace('/','\/',$pattern) . '/';
if( preg_match($pattern,$result) ){
return $result[$itemIndex];
}else{
return "-";
}
}
//趋势的规则都一样,合并
private function qushiPattern($name){
return '<div class="txt-aside">' . $name . ':