Loading...
Обучение/Помощь новичкам | Запись txt файла в базу
Всем привет, вот такая задача.
У меня есть несколько txt файлов(в одной папке) в каждом файле определённый текс.
Есть таблица вида [id][name][text]
Мне нужно записать содержимое файлов по очереди в колонку text а имя файла записать в name ну соответственно присвоить каждому файлу свой id
Примерно так

<?php

$dir = './dir'; // путь к директории с файлами

$files = array_diff(scandir($dir), array('.','..'));

foreach($files as $file) {

mysql_query("INSERT INTO table SET name = '". $file ."', text = '". file_get_contents($dir ."/". $file) ."'");

}

?>
________
посл. ред. 21.02.2018 в 06:02; всего 1 раз(а); by Wins
<?php
$dir = scandir('1/');
$data = [];
foreach($dir as $o=>$j){if($o>1){
$file = file_get_contents('1/'.$j);
$data[] = '("'.$j.'", "'.base64_encode($file).'")';
}
}
$data = implode(',',$data);
mq('INSERT INTO table(`name`,`text`) VALUES '.$data.';');
punkromain (21.02.2018 в 06:02)
<?php
$dir = scandir('1/');
$data = [];
foreach($dir as $o=>$j){if($o>1){
$file = file_get_contents('1/'.$j);
$data[] = '("'.$j.'", "'.base64_encode($file).'")';
}
}
$data = implode(',',$data);
mq('INSERT INTO table(`name`,`text`) VALUES '.$data.';');


Спасибо, а нафига мне его из base64 декодировать?
Wins (21.02.2018 в 05:54)
Примерно так

<?php

$dir = './dir'; // путь к директории с файлами

$files = array_diff(scandir($dir), array('.','..'));

foreach($files as $file) {

mysql_query("INSERT INTO table SET name = '". $file ."', text = '". file_get_contents($dir ."/". $file) ."'");

}

?>

Спасибо
Если файлов много то лучше такой вариант конечно

<?php

$dir = './dir'; // путь к директории с файлами

$files = array_diff(scandir($dir), array('.','..'));
$data = array();

foreach($files as $file) {

$data[] = "('". $file ."', '". file_get_contents($dir ."/". $file) ."')";

}

mysql_query("INSERT INTO table(`name`,`text`) VALUES ". implode(",", $data));

?>
________
посл. ред. 21.02.2018 в 06:34; всего 1 раз(а); by Wins
Master zpank (21.02.2018 в 06:07)
punkromain (21.02.2018 в 06:02)
<?php
$dir = scandir('1/');
$data = [];
foreach($dir as $o=>$j){if($o>1){
$file = file_get_contents('1/'.$j);
$data[] = '("'.$j.'", "'.base64_encode($file).'")';
}
}
$data = implode(',',$data);
mq('INSERT INTO table(`name`,`text`) VALUES '.$data.';');


Спасибо, а нафига мне его из base64 декодировать?

А чёрт знает что там находится :-D
Wins (21.02.2018 в 06:24)
Если файлов много то лучше такой вариант конечно

<?php

$dir = './dir'; // путь к директории с файлами

$files = array_diff(scandir($dir), array('.','..'));
$data = array();

foreach($files as $file) {

$data[] = "('". $file ."', '". file_get_contents($dir ."/". $file) ."')";

}

mysql_query("INSERT INTO table(`name`,`text`) VALUES ". implode(",", $data) .";");

?>

Ок, вот еще вопрос. если файл один и текст в нём разделяется двумя переносами строки

1. текст

2.текст
и.т.д как записать в базу каждый текст отдельно? ну и присвоить опять же каждой части id
punkromain (21.02.2018 в 06:26)
Master zpank (21.02.2018 в 06:07)
punkromain (21.02.2018 в 06:02)
<?php
$dir = scandir('1/');
$data = [];
foreach($dir as $o=>$j){if($o>1){
$file = file_get_contents('1/'.$j);
$data[] = '("'.$j.'", "'.base64_encode($file).'")';
}
}
$data = implode(',',$data);
mq('INSERT INTO table(`name`,`text`) VALUES '.$data.';');


Спасибо, а нафига мне его из base64 декодировать?

А чёрт знает что там находится :-D

)))))
<?php

$dir = './dir/'; // директория
$file = 'file.txt'; // файл

$array = file($dir . $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$data = array();

foreach($array as $str) {

$data[] = "('". $file ."', '". $str ."')";

}

mysql_query("INSERT INTO table(`name`,`text`) VALUES ". implode(",", $data));

?>
________
посл. ред. 21.02.2018 в 07:05; всего 1 раз(а); by Wins
Онлайн: 5
Время:
Gen. 0.1035
(c) Bym.Guru 2010-2026