<form method="post" action="/main/importTxt" enctype="multipart/form-data">
<div class="form-group mt-3">
<label for="exampleFormControlFile1">Файл .TXT :</label>
<input name="file" type="file" class="form-control-file" id="exampleFormControlFile1">
</div>
<button type="submit" class="btn btn-success mb-3">Загрузить данные в базу </button>
</form>
<?php
if (!file_exists($_FILES['file']['tmp_name']) || !is_uploaded_file(($_FILES['file']['tmp_name']))) {
echo "No upload";
} else {
$file = fopen($_FILES['file']['tmp_name'], "r");
$i = 0;
$result = [];
while (!feof($file)) {
$buffer = fgets($file);
if (($buffer != "\n") && ($buffer != '')) {
$result[$i][explode(':', $buffer)[0]] = explode(':', $buffer)[1];
} else $i++;
}
fclose($file);
echo "<pre>";
var_dump($result);
echo "</pre>";
$c = new Model();
if ($c->connect()) {
$sql = "INSERT INTO films (title, release, format, actors)
VALUES ( :title, :release, :format, :actors)";
$stmt = $c->connect()->prepare($sql);
foreach ($result as $k => $v ) {
$stmt->bindParam(':title', $v['Title'], PDO::PARAM_STR);
$stmt->bindParam(':release', $v['Release Year'], PDO::PARAM_STR);
$stmt->bindParam(':format', $v['Format'], PDO::PARAM_STR);
$stmt->bindParam(':actors', $v['Stars'], PDO::PARAM_STR);
$stmt->execute();
}
}
}
?>
Открываю тхт файл в форме, получаю путь, достаю из него массив и пытаюсь записать, но не выходит... шото я туплю
Массив будет в таком виде:
array(25) {
[0]=>
array(4) {
["Title"]=>
string(17) " Blazing Saddles
"
["Release Year"]=>
string(6) " 1974
"
["Format"]=>
string(5) " VHS
"
["Stars"]=>
string(84) " Mel Brooks, Clevon Little, Harvey Korman, Gene Wilder, Slim Pickens, Madeline Kahn
"
}
[1]=>
array(4) {
["Title"]=>
string(12) " Casablanca
"
["Release Year"]=>
string(6) " 1942
"
["Format"]=>
string(5) " DVD
"
["Stars"]=>
string(60) " Humphrey Bogart, Ingrid Bergman, Claude Rains, Peter Lorre
"
}