Wenn wir Finanzmanagement-Websites erstellen, sammeln wir nur Daten von Portalseiten. Es ist unmöglich, selbst Aktieninformationen zu generieren. Schauen wir uns einen Artikel über das Sammeln an Alle Daten aus dem PHP-Befehlszeilenprogramm, Details sind wie folgt.
Die Hauptfunktion hat nur eine Klassenimplementierung (stock.class.php):
<?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 '<p class="txt-aside">' . $name . ':</p>\s*<p class="txt-main">([^<]*)</p>'; } //支持的标签 private function name($html){ return $this -> match("<title>([^\(<]*)\(", $html, 1); } private function score($html){ return $this -> match('<span class="analyze-num">(\d+(\.\d+)?)</span>', $html); } private function tips($html){ return $this -> match('<span class="analyze-tips">([^<]*)</span>', $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); } } ?>
Die aufrufende Methode in der Eingabeaufforderung ist wie folgt (stock.php):
<?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); } ?>
Sie können den *php.exe stock.php
-Aktiencode direkt verwenden, um den Aufruf zu implementieren , können Sie zur Vereinfachung die Stapelverarbeitung verwenden.
Speichern Sie den Code unten als stock.cmd.
@XXX\php.exe stock.php %1
Laufergebnisse:
Auf diese Weise erfolgt die Sammlung einzelner Aktientrends Wenn Sie alle Bestandsinformationen gesammelt haben, können Sie diese als Batch--Verarbeitungsdatei (batch.cmd) speichern.
@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...
Doppelklicken Sie, um sie anzuzeigen Wenn Sie es in einer Datei speichern möchten, können Sie batch.cmd > log.txt
ausführen und die Ergebnisse dann für eine verantwortungsvollere Analyse nach Execl (oder ET) kopieren.
Das obige ist der detaillierte Inhalt vonPHP verwendet den Befehlszeilenmodus, um Beispielcode für Aktientrendinformationen zu sammeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!