目前,我正在开发一个 PHP 脚本从 ftp://ftp.sec.gov 获取索引文件的项目。并将所有公司信息存入数据库。然后,第二个 PHP 脚本从 SEC 抓取原始文本文件并将其保存在本地以供处理。
可以在此处找到原始文本文件的示例 -
ftp://ftp.sec.gov/edgar/data/2488/0000002488-15-000028.txt
可以在此处找到最终结果的示例 - http://www.sec.gov/Archives/edgar/data/1084869/000143774915020024/flws20150927_10q.htm
目标是能够像许多公司一样以格式化的方式呈现文件,但问题是我似乎无法弄清楚每个文件是如何可靠地完成的。有些文件似乎有 XML,有些似乎有 HTML
我怎样才能可靠地生成原始文本文件的格式化版本?
我的当前代码 -
$db_hostname = "localhost";
$db_username = "username";
$db_password = "password";
$db_database = "database";
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database)
or die("Unable to select database: " . mysql_error());
$query = "SELECT * FROM company WHERE company = '1 800 FLOWERS COM INC' AND date = '2015-08-06'";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$file = "ftp://ftp.sec.gov/" . $row[4];
$text = file_get_contents($file);
if($text === false){
echo "error downloading file $row[4]\n";
continue;
}
$tarray = explode('<SEQUENCE>', $text);
for($i = 1; $i < count($tarray); $i++){
$a = strstr($tarray[$i], '<HTML>');
if($a == false)continue; //means that there is no html document in this sequence
$html = strstr($a, '</HTML>', true);
$html.="</HTML>";
$running = $running . $html;
}
$temp = "cache.htm";
file_put_contents($temp, $running);
$name = $row[0] . "-" . $row[3] . ".pdf";
$name = str_replace(' ', '_', $name);
//$content = file_get_contents($row[2] . "-" . $row[1] . ".htm");
exec("D://wkhtmltopdf/bin/wkhtmltopdf.exe $temp $name");
unlink($temp);
//echo($row[0] . " created");
?>
最佳答案
您不需要使用原始文本文件。您可以使用 sec-api
( https://www.npmjs.com/package/sec-api )。该软件包使用 websockets 为 sec.gov EDGAR 提供了一个实时 channel ——它与客户端(React、React Native、Angular、Vue 等)和服务器端(Node.js 等)JavaScript 一起工作。
一旦在 EDGAR 上发布新文件(10K、10Q、13D 等),程序包就会触发一个事件,并以 JSON 格式返回以下数据:
{
"companyName":"MORGAN STANLEY (0000895421) (Filer)",
"type":"424B2",
"description":"FORM 424B2",
"linkToFilingDetails":"https://www.sec.gov/...014988-index.htm",
"linkToHtmlAnnouncement":"https://www.sec.gov/...268.htm",
"announcedAt":"2018-12-26T16:02:32-05:00"
}
linkToFilingDetails
指向列出所有备案附件的 HTML 文件。
linkToHtmlAnnouncement
指向文件本身的 HTML 文件。
也可以结合使用 PHP 和启用 websockets 的插件(例如 Ratchet)。
我开发了这个工具。如果您有任何反馈,请告诉我,我很乐意添加功能。
关于php - EDGAR .txt 文件的 HTML 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33979261/