介绍
怎么在PHP命令行模式中采集股票趋势信息?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强>主要函数只有一个类实现(stock.class.php): 强>
& lt; PHP ? ,class StockClass { ,public stockId美元; , ,public function  __construct (stockId美元){ 美元才能却;能够→,stockId =, stockId美元; ,} , ,private function  getUrl () { return 才能“http://stockpage.10jqka.com.cn/",只美元却;能够→,stockId 只“/? ,} , ,private function  getPage () { return 才能file_get_contents()美元却;能够→,getUrl ()); ,} , ,//核心,通过正则匹配出,标签名,并将对应的方法的结果替换掉标签占位符 ,public function  getInfo(模板){ 美元才能html =,美元却;能够→,getPage (); 如果才能(,preg_match_all(“/\{((^ \}) *) \}/,,,模板,美元,导致美元),){ foreach才能($结果[1],as index 美元;=祝辞,有趣的美元){ ,,template 美元;=,str_replace(结果[0]美元(美元指数),美元却;能够→,有趣的(html)美元,美元,美元模板); ,,} ,,} return 才能;mb_convert_encoding(模板,美元,“GBK",,“UTF-8");,//Windows的命令提示符编码是GBK ,} , ,private function 匹配($模式,,html,美元,美元itemIndex =, 1) { 时间=美元才能pattern & # 39;/& # 39;,只str_replace(& # 39;/& # 39;,, & # 39; \/& # 39;,,美元模式),只& # 39;/& # 39;; 如果才能(,preg_match(模式,美元,html,美元,导致美元),){ return 才能;结果美元[$ itemIndex]; }{其他才能 return “才能产生绯闻;; ,,} ,} , ,//趋势的规则都一样,合并 ,private function  qushiPattern(美元名称){ return 才能;& # 39;& lt; div 类=皌xt-aside"祝辞& # 39;,只name 美元;只& # 39;:& lt;/div> \ s * & lt; div 类=皌xt-main"祝辞([^ & lt;] *) & lt;/div> & # 39;; ,} , ,//支持的标签 ,private function 名称(html) { return 才能;$却;能够→,匹配(“& lt; title> ([^ \ (& lt;] *) \ (“,, html,美元,1); ,} ,private function 分数(html) { return 才能;$却;能够→,匹配(& # 39;& lt; span 类=癮nalyze-num"祝辞(\ d + (\ \ d +) ?) & lt;/span> & # 39;,,美元html); ,} ,private function 技巧(html) { return 才能;$却;能够→,匹配(& # 39;& lt; span 类=癮nalyze-tips"祝辞([^ & lt;] *) & lt;/span> & # 39;,,美元html); ,} ,private function  qushishort (html) { return 才能;$却;能够→,匹配(美元却;能够→,qushiPattern(“短期趋势,),,美元html); ,} ,private function  qushimiddle (html) { return 才能;$却;能够→,匹配(美元却;能够→,qushiPattern(“中期趋势,),,美元html); ,} ,private function  qushilong (html) { return 才能;$却;能够→,匹配(美元却;能够→,qushiPattern(“长期趋势,),,美元html); ,} ,} ?在
<>强命令提示符中的调用方法如下(stock.php): 强>
& lt; php ? , ,如果(count ($ argv),祝辞=,2){ ,要求(“stock.class.php"); ,stockId 美元;=,$ argv [1]; ,stock 美元;=,new StockClass ($ stockId); 美元,美元temp =, stockId; temp 美元。=,,,{名称},,,//名称 temp 美元。=,,,{得分},,,//评分 temp 美元。=,,,{提示},,,//描述 temp 美元。=,,,{qushishort},,,//短期趋势 temp 美元。=,,,{qushimiddle},,,//中期趋势 temp 美元。=,,,{qushilong},,,//长期趋势//temp 美元。=,,,{zidingyi},,,//自定义,直接在StockClass增加zidingyi方法即可 temp 美元。=,“\ n"; ,echo stock 美元;→,getInfo(临时); ,} 祝辞;
直接使用<代码> * \ php。exe股票。php代码>股票代码即可实现调用,每次输入太长的,可以用批处理简化。
将下面的代码保存为股票。cmd .
@XXX \ php.exe stock.php % 1
<强>运行结果:强>
<强> 强>
这样就完成了单个股票趋势的采集,如果要采集所有的股票信息,可以保存为批处理文件(批处理。cmd)