|
|
|
| есть текстовый файл с содержанием
Заголовок 1 описание
1.1 текст разный
1.2 текст
1.3 текст разный
1.4 текст
1.5 текст
1.6 текст
Заголовок 2 описание
2.1 текст разный
2.2 текст
2.3 текст разный
2.4 текст
2.5 текст
2.6 текст
Помогите вывести текст в масив для залития в базу данных.
чтобы был первый заголовок с номером 1
потом все что в ходит в первый заголовок каждая строчка под своим номером и т.п со вторым и третьим заголовком | |
|
|
|
|
|
|
|
для: dirol
(09.12.2010 в 13:40)
| | заголовки с их содержимым разделяются двумя переводами строк?
тогда грузите файл (если большой, то частями) в переменную, разбивайте ее по двум переводам, полученный массив обходите в цикле и разбивайте по одному переводу строки. первый элемент будет название раздела, все остальное - его содержимое.
<? include "config.inc.php";
ini_set("max_execution_time",999999);
$filename = "data.txt";
// otkrivaem
$file = fopen($filename, "r");
// chitaem
$buffer = fread($file, filesize($filename));
// zakrivaem
fclose($file);
// echo $buffer; exit;
//$result = mysql_query("delete from books_writers") or die(" $sqlquery <b>failed!</b><br>".mysql_error());
// delaem massiv iz stroki dannwx
$file_array = explode("<br /><br />", $buffer);
//nachalo perebora massiva
foreach ($file_array as $line_num => $line) {
//razbivaem stroku na polya i formiruem zapros
$line_exp = explode("<br />", $line);
$sqlquery = 'INSERT INTO table VALUES (';
$sqlquery .= $line_exp[0]; // название раздела
$sqlquery .= ',"'.$line_exp[1] . '"'; // содержимое
$sqlquery .= ')';
//echo $sqlquery.";<br>";
$result = mysql_query($sqlquery) or die(" $sqlquery <b>failed!</b><br>".mysql_error());
}
?>
|
| |
|
|
|
|
|
|
|
для: elenaki
(10.12.2010 в 20:55)
| | >заголовки с их содержимым разделяются двумя переводами строк?
в исходном посте двойного перевода не увидел, как ни вглядывался... | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2010 в 21:20)
| | Думаю, имеется в виду, пустая строка перед "Заголовок 2 описание". Это, конечно, не обязательно два брейка. Раз файл текстовый, это, скорее \r\n\r\n в то время, как остальные строки разделены одной парой \r\n
В итоге:
// delaem massiv iz stroki dannwx
$file_array = explode("\r\n\r\n", $buffer);
//nachalo perebora massiva
foreach ($file_array as $line_num => $line) {
//razbivaem stroku na polya i formiruem zapros
$line_exp = explode("\r\n", $line);
|
| |
|
|
|
|
|
|
|
для: Trianon
(10.12.2010 в 21:20)
| | я вгляделась в код этой страницы и вот, что увидела.
<br />
Ηΰγξλξβξκ 1 ξοθρΰνθε<br />
1.1 ςεκρς πΰηνϋι<br />
1.2 ςεκρς<br />
1.3 ςεκρς πΰηνϋι<br />
1.4 ςεκρς<br />
1.5 ςεκρς<br />
1.6 ςεκρς<br />
<br />
Ηΰγξλξβξκ 2 ξοθρΰνθε<br />
2.1 ςεκρς πΰηνϋι<br />
2.2 ςεκρς<br />
2.3 ςεκρς πΰηνϋι<br />
2.4 ςεκρς<br />
2.5 ςεκρς<br />
2.6 ςεκρς<br />
<br />
|
если вы не видите там два брейка подряд, мне вас жаль вам нужны очки. а вообще, в таких вопросах, надо исходные данные давать в аттачменте, чтоб не было никаких двусмысленностей. | |
|
|
|
|
|
|
|
для: elenaki
(12.12.2010 в 17:43)
| | Думаю, фраза "есть текстовый файл с содержанием" означает то, что в содержании именно то, что ниже показано (просто текст).
П. С. На Трианона предлагаю не наезжать. Он - возможно, лучший специалист на форуме. | |
|
|
|
|
|
|
|
для: elenaki
(12.12.2010 в 17:43)
| | Неожиданный ход :))
Как, еще одни?
>а вообще, в таких вопросах, надо исходные данные давать в аттачменте, чтоб не было никаких двусмысленностей.
В таких вопросах, как мне представляется, следует более четко, вероятно даже более формально описывать формат исходных данных. Либо как вариант, приводить реальные примеры данных, а не этакой вот суррогат.
Кстати, аспект добавления в БД вопросов вызывает не меньше - судя по структуре, заполнять требуется как минимум две таблицы. О чем тредстартер тоже ни разу не пояснил. | |
|
|
|