Я пытаюсь прочитать файл ($txtFile
) построчно. Затем сохраните различные элементы в строке ($line
), разделенные запятой в массиве ($pieces
). Код приведен ниже.
<?php
include_once __DIR__.'/connect.php';
function createURL($ticker)
{
$currentPeriod = time();
return "https://query1.finance.yahoo.com/v7/finance/download/$ticker?period1=1538917807&period2=1541596207&interval=1d&events=history&crumb=6DH0b71wPwr";
}
function getCSVFile($url, $outputFile)
{
$content = file_get_contents($url);
$content = str_replace("Date,Open,High,Low,Close,Adj Close,Volume", "", $content);
$content = trim($content);
file_put_contents($outputFile, $content);
}
function fileToDatabase($txtFile, $tableName)
{
$file = fopen($txtFile, "r");
while (!feof($file)) {
$line = fgets($file);
$pieces = explode(",", $line);
print_r($pieces);
$date = $pieces[0];
$open = $pieces[1];
$high = $pieces[2];
$low = $pieces[3];
$close = $pieces[4];
$adj_close = $pieces[5];
$volume = $pieces[6];
$amount_change = $adj_close-$open;
$percent_change = ($amount_change/$open)*100;
$sql = "SELECT * FROM $tableName";
$result = $conn->query($sql);
if (!$result) {
$createQuery = "CREATE TABLE $tableName (
date TIMESTAMP PRIMARY KEY,
open FLOAT,
high FLOAT,
low FLOAT,
close FLOAT,
adj_close FLOAT,
volume INT,
amount_change FLOAT,
percent_change FLOAT
)";
$conn->query($createQuery);
}
$insertQuery = "INSERT INTO $tableName VALUES (
'$date', '$open', '$high', '$low', '$close', '$adj_close', '$volume', '$amount_change', '$percent_change'
)";
$conn->query($insertQuery);
}
fclose($file);
}
function main()
{
$pathToTickerFile = __DIR__."/tickerMaster.txt";
$mainTickerFile = fopen($pathToTickerFile, "r");
while (!feof($mainTickerFile)) {
$companyTicker = fgets($mainTickerFile);
$companyTicker = trim($companyTicker);
$fileURL = createURL($companyTicker);
$companyTxtFile = __DIR__."/txtFiles/".$companyTicker.".txt";
getCSVFile($fileURL, $companyTxtFile);
fileToDatabase($companyTxtFile, $companyTicker);
}
fclose($mainTickerFile);
echo "The stocks have been downloaded!";
}
main();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Stock Downloader</title>
</head>
<body>
</body>
</html>
Но я получаю следующую ошибку:
PHP Notice: Undefined offset: 1
PHP Notice: Undefined offset: 2
PHP Notice: Undefined offset: 3
PHP Notice: Undefined offset: 4
PHP Notice: Undefined offset: 5
PHP Notice: Undefined offset: 6
Я использую PHP-7.0 и не могу понять, что не так с этим кодом. Как мне избавиться от этой ошибки?