2013-03-16 6 views
-2

사용자가 다양한 주식 기호를 입력하고 가격을 회수하여 html 표를 인쇄 할 수있는 초급 웹 프로그래밍 클래스 웹 사이트를 구축해야합니다. 나는 YQL 또는 블룸버그 Open APi를 사용하여 보려고했지만 단순히 이해할 수 없다. 누구든지이 경험을 가진 사람이, 난 단지 자바 스크립트와 PHP는 모든 코드를 구문 알아.YQL 또는 다른 api를 사용하는 증권 시세 웹 사이트

+0

이 블로그 게시물을 작성하면 도움이 될 것입니다. http://zacvineyard.com/blog/2015/11/how-to-get-stock-quotes-with-php-using-the-yahoo- 금융 API. 강조 표시 한 코드는 yql을 사용하여 주식 데이터를 가져옵니다. – zvineyard

답변

1

이 질문에 얼마 전에 질문을했지만, 나는이 질문에 대한 비슷한 대답을 찾고있는 사람들이 있을지도 모른다는 희망에 대해 대답 할 것이라고 생각했습니다.

저는 YQL을 사용하여 PHP 응용 프로그램에 주식 정보를 쉽게 가져 왔습니다. 그러나 젠드 프레임 워크 2를 사용하고 있지만 반드시 필요한 것은 아닙니다.

public function GetQuote($symbol) 
    { 
     if($symbol != '') { 
      $xml = simplexml_load_file("http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20yahoo.finance.oquote%20WHERE%20symbol%3D'{$symbol}'&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"); 
     $result = $xml->results->option; 

     $this->setPrice(  $result->price->asXML()  ); 
     $this->setChange(  $result->change->asXML()  ); 
     $this->setPrevClose( $result->prevClose->asXML() ); 
     $this->setOpen(  $result->open->asXML()  ); 
     $this->setBid(   $result->bid->asXML()  ); 
     $this->setAsk(   $result->ask->asXML()   ); 
     $this->setStrike(  $result->strike->asXML()  ); 
     $this->setExpire(  $result->expire->asXML()  ); 
     $this->setVolume(  $result->volume->asXML()  ); 
     $this->setOpenInterest($result->openInterest->asXML()); 

     return true; 
    } else { 
     return false; 
    } 
} 

나는 테이블 yahoo.finance.oquote를 조회하고 : 나는 YQL을 사용하여 주식 정보를 끌어 방법은 다음과

이다.

<results> 
    <option sym="MSFT"> 
     <price>31.89</price> 
     <change>Aug 2, 4:00PM EDT</change> 
     <prevClose>31.89</prevClose> 
     <open>N/A</open> 
     <bid/> 
     <ask/> 
     <strike>34.82</strike> 
     <expire>0.9</expire> 
     <volume>26.26</volume> 
     <openInterest/> 
    </option> 
</results> 

위의 코드에서 볼 수 있듯이, 내가 호출 오전 : :이 simplexml_load_file 함수는 XML을 기반으로 SimpleXML을 객체의 배열을 반환

는 쿼리에서 반환

$result = $xml->results->option; 

위의 XML과 직접적으로 일치합니다. 그 후 당신은 그냥 쉽게 말해서 데이터를 뽑을 수 : 함수가 asXML이라고 이유를 모르겠어요

$result->price->asXML(); 

(), 나는 그것이 toString라고 상상(). 그러나 asXML()은 xml 태그 "price"사이의 내용을 반환합니다.

YQL Console으로 이동하여 오른쪽에있는 "커뮤니티 표 표시"를 선택하면 모든 표 목록을 찾을 수 있습니다. 재무와 관련된 모든 테이블을 반환하는 "Finance"와 같이 입력하여이를 필터링 할 수 있습니다.

금융 API 이외에도 사용할 수 있으므로 PHP로 YQL을 사용하는 데 관심이있는 사용자에게 도움이되기를 바랍니다.