Php 股票系统,利用PHP命令行模式采集股票趋势信息
话不多说,下面直接来看实现代码。
主要函数只有一个类实现(stock.class.php):
class StockClass{
public $stockId;
public function __construct($stockId){
$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, $html, $result) ){
return $result[$itemIndex];
}else{
return "-";
}
}
//趋势的规则都一样,合并
private function qushiPattern($name){
return '
\s*
}
//支持的标签
private function name($html){
return $this -> match("
([^\(
}
private function score($html){
return $this -> match('(\d+(\.\d+)?)', $html);
}
private function tips($html){
return $this -> match('([^', $html);
}
private function qushishort($html){
return $this -> match($this -> qushiPattern("短期趋势"), $html);
}
private function qushimiddle($html){
return $this -> match($this -> qushiPattern("中期趋势"), $html);
}
private function qushilong($html){
return $this -> match($this -> qushiPattern("长期趋势"), $html);
}
}
?>
命令提示符中的调用方法如下(stock.php):
if(count($argv) >= 2){
require("stock.class.php");
$stockId = $argv[1];
$stock = new StockClass($stockId);
$temp = $stockId;
$temp .= " {name}"; //名称
$temp .= " {score}"; //评分
$temp .= " {tips}"; //描述
$temp .= " {qushishort}"; //短期趋势
$temp .= " {qushimiddle}"; //中期趋势
$temp .= " {qushilong}"; //长期趋势
//$temp .= " {zidingyi}"; //自定义,直接在StockClass增加zidingyi方法即可
$temp .= "\n";
echo $stock -> getInfo($temp);
}
?>
直接使用*\php.exe stock.php股票代码即可实现调用,每次输入太长的,可以用批处理简化。
将下面的代码保存为 stock.cmd。
@XXX\php.exe stock.php %1
运行结果:
这样就完成了单个股票趋势的采集,如果要采集所有的股票信息,可以保存为批处理文件(batch.cmd)
@echo off
call stock 000001
call stock 000002
call stock 000003
call stock 000004
call stock 000005
call stock 000006
call stock 000007
call stock 股票代码n...
双击打开即可显示,如果想保存到文件,可以执行 batch.cmd > log.txt,然后将结果复制到 Execl(或ET)即可进行更负责的分析。
以上就是利用PHP命令行模式采集股票趋势信息的全部内容,这个功能很方便实用,感兴趣的朋友们快快实践起来吧。
Php 股票系统,利用PHP命令行模式采集股票趋势信息相关推荐
- 系统引导管理 之 用GRUB(包括WINGRUB)命令行模式引导安装Linux
作者:北南南北 来自:LinuxSir.Org 提要:Linux的安装过程的引导有几种方法,一种是在DOS下通过loadlin进行安装:一种是通过lilo系统引导管理器进行引导:还有一种就是通过系统引 ...
- (已解决)win10+ubuntu18.04双系统,ubuntu锁屏后无法唤醒,重启黑屏闪烁无法进入命令行模式
事发经过: 台式机双系统 win10 + Ubuntu16.04,大部分时间在Ubuntu16.04下工作.一个不小心(dist-upgrade)升级到了ubuntu18.04后,在一次锁屏后发现再也 ...
- mysql创建用户phpmyadmin_MySQL添加新用户和数据库(命令行模式和phpmyadmin)
MYSQL添加新用户和数据库(命令行模式和phpmyadmin) 一.命令行模式 首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的. 注:本操作是在WIN命令 ...
- (转)php-cli模式学习(PHP命令行模式)
php-cli模式学习(PHP命令行模式) 之前知道php-cli模式是一种类似shell命令式的执行php程序,不过一直以为这个是一种落后的方式,应该没有什么意义,因为从没有遇到过使用这个cli模式 ...
- linux三个命令模式切换,ubuntu16.04命令行模式和图形界面互相切换的两种解决办法,...
ubuntu16.04命令行模式和图形界面互相切换的两种解决办法, 在ubuntu中,我们可以有两种工作模式,一种是纯字符的命令行模式,这种界面没有那么好操作,而且对命令要求比较熟悉,比较适合专业人士 ...
- php mysql 命令行模式_PHP 的命令行模式
从版本 4.3.0 开始,PHP 提供了一种新类型的 SAPI(Server Application Programming Interface,服务端应用编程端口)支持,名为 CLI,意为 Comm ...
- PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...
- kali liunx使用心得之命令行模式下如何配置连接无线网络
kali liunx使用心得之命令行模式下如何配置连接无线网络 最近在使用kali时出现了一点小小的问题,由于我安装的是win10和kali双系统,为了能够在kali界面下自由操作win10下的磁盘, ...
- PHP 的命令行模式
被安全模式限制或屏蔽的函数Built-in web server 特点 在线手册:中文 英文PHP手册 PHP 的命令行模式 Table of Contents Built-in web server ...
最新文章
- php 全局搜索方法,php启用sphinx全文搜索的方法
- grpc通信原理_容器原理架构详解(全)
- 深入理解strncpy这个函数
- 奎屯电信助力智慧城市光网建设
- MYSQL数据库导入出错:#1046 - No database selected
- HDU - 7008 水题(打表)
- 3算法全称_全网最通俗的KMP算法图解
- vscode如何创建一个go项目_如何用手机创建一个网站
- 浅谈ASP.NET的内部机制(二)
- vscode 格式化某一段代码_vscode 如何自动格式化代码?
- html 实现复制功能
- 正弦定理c语言函数,正弦定理和余弦定理的所有公式
- 配置 Raspberry PI WiFi
- 「镁客早报」微软总市值超过苹果亚马逊;Linux内核出现漏洞
- c++11的regex使用
- tyvj 2053 [Nescafé29]穿越七色虹
- 6个杰出的国产APP推荐,你知道多少呢?
- CNN之绘画风格迁移-附源码地址
- 帆船运行员训练方法研究
- 【Windows】win10 禁止 IE 自动跳转到 Edge
热门文章
- puzzle(1036)数邻、多米诺骨牌
- 想到我爱你的绝对不正常
- python 透明图片合成_python:图片合成(PIL 库Image类模块)
- pattern和match的用法 java篇
- 2022年襄阳中级工程师职称水平能力测试成绩出来了吗?
- JVM调优之参数配置: -Xms -Xmx -Xmn -XX:+PrintGCDetails -XX:UseSerialGC -XX:SurvivorRadio -XX:NewRadio
- Flink的双流join介绍
- cad隐藏图层命令快捷键_cad解锁图层命令(cad图层全部解锁快捷键)
- 隐马尔可夫模型HMM
- 文献翻译:Comparative metagenomics of hydrocarbon and methane seeps of the Gulf of Mexico