Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. class Finance {
  2.  
  3.  
  4. public static $companyList = array();
  5.  
  6. public static function getCompaniesByLetter($letter = null,$number = null) {
  7. if ($letter && $number) {
  8. $letter = trim(strtoupper($letter));
  9. $companyList = 'http://www.nasdaq.com/screening/companies-by-name.aspx?letter='.$letter.'&render=download';
  10. if (@file_get_contents($companyList)) {
  11. self::$companyList = null;
  12. $csv = trim(str_replace('"Symbol","Name","LastSale","MarketCap","ADR TSO","IPOyear","Sector","industry","Summary Quote",', '', file_get_contents($companyList)));
  13. time_nanosleep(0, 300000000);
  14. $csv = file_put_contents('tmpcompanylist.csv', $csv);
  15. $file = fopen('tmpcompanylist.csv', 'r');
  16. $i = 0;
  17. while (!feof($file) && $i < $number) {
  18. $line = fgets($file);
  19. $line = str_replace('"', '', $line);
  20. $companyInfo = explode(',', $line);
  21. $removeThisNumber = floatval($companyInfo[2]);
  22. if (!$removeThisNumber) {
  23. $sector = 7;
  24. $industry = 8;
  25. } else {
  26. $sector = 6;
  27. $industry = 7;
  28. }
  29. $clearCompanyName = str_replace($removeThisNumber, '', $companyInfo[2]);
  30. $companyName = $companyInfo[1].$clearCompanyName;
  31. self::$companyList[] = array(
  32. 'symbol' => $companyInfo[0],
  33. 'name' => $companyName,
  34. 'sector' => $companyInfo[$sector],
  35. 'industry' => $companyInfo[$industry]
  36. );
  37. $i++;
  38. }
  39.  
  40. fclose($file);
  41. return true;
  42. }
  43.  
  44. return false;
  45. }
  46.  
  47. return false;
  48. }
  49.  
  50.  
  51. //This method will insert the companyinformation in database
  52. public function insertCompaniesByLetter($range = array(),$number = null) {
  53. if (is_array($range) && $number && count($range == 2)) {
  54. $range = range($range[0], $range[1]);
  55. foreach ($range as $letter) {
  56. if (self::getCompaniesByLetter($letter,$number)) {
  57.  
  58. foreach (self::$companyList as $company => $data) {
  59. echo ($data['symbol']).'<br />';
  60. echo ($data['name']).'<br />';
  61. echo ($data['sector']).'<br />';
  62. }
  63.  
  64. return true;
  65. }
  66. }
  67. }
  68.  
  69. return false;
  70. }
  71.  
  72. }
  73.  
  74. Finance::insertCompaniesByLetter(array('A','D'),'10');
  75.  
  76. Array
  77. (
  78. [0] => Array
  79. (
  80. [symbol] => PIH
  81. [name] => 1347 Property Insurance Holdings Inc.
  82. [sector] => n/a
  83. [industry] => n/a
  84. )
  85.  
  86. [1] => Array
  87. (
  88. [symbol] => FLWS
  89. [name] => 1-800 FLOWERS.COM Inc.
  90. [sector] => Consumer Services
  91. [industry] => Other Specialty Stores
  92. )
  93.  
  94. [2] => Array
  95. (
  96. [symbol] => FCTY
  97. [name] => 1st Century Bancshares Inc
  98. [sector] => Finance
  99. [industry] => Major Banks
  100. )
  101.  
  102. [3] => Array
  103. (
  104. [symbol] => FCCY
  105. [name] => 1st Constitution Bancorp (NJ)
  106. [sector] => Finance
  107. [industry] => Savings Institutions
  108. )
  109.  
  110. [4] => Array
  111. (
  112. [symbol] => SRCE
  113. [name] => 1st Source Corporation
  114. [sector] => Finance
  115. [industry] => Major Banks
  116. )
  117.  
  118. [5] => Array
  119. (
  120. [symbol] => FUBC
  121. [name] => 1st United Bancorp Inc. (FL)
  122. [sector] => Finance
  123. [industry] => Major Banks
  124. )
  125.  
  126. [6] => Array
  127. (
  128. [symbol] => VNET
  129. [name] => 21Vianet Group Inc.
  130. [sector] => Technology
  131. [industry] => Computer Software: Programming
  132. )
  133.  
  134. [7] => Array
  135. (
  136. [symbol] => XXII
  137. [name] => 22nd Century Group Inc
  138. [sector] => Consumer Non-Durables
  139. [industry] => Farming/Seeds/Milling
  140. )
  141.  
  142. [8] => Array
  143. (
  144. [symbol] => DDD
  145. [name] => 3D Systems Corporation
  146. [sector] => Technology
  147. [industry] => Computer Software: Prepackaged Software
  148. )
  149.  
  150. [9] => Array
  151. (
  152. [symbol] => MMM
  153. [name] => 3M Company
  154. [sector] => Health Care
  155. [industry] => Medical/Dental Instruments
  156. )
  157.  
  158. )
  159.  
  160. public function insertCompaniesByRange($letters = array(), $number = null) {
  161. if (is_array($letters) && $number && count($letters) == 2) {
  162. $range = range($letters[0], $letters[1]);
  163. foreach ($range as $letter) {
  164. if ($this->getCompaniesByLetter($letter,$number)) {
  165. foreach($this->companyList as $company) {
  166. $this->insertCompany($company);
  167. }
  168. }
  169. }
  170. }
  171.  
  172. return false;
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement