|
|
|
| Здравствуйте,
Нужно перекинуть словарик в MySQL, соответственно нужен php скрипт. Формат лингво. В самом упрощённом виде имеет следующую структуру (текстовый файл):
Слово1
[m1]Чтение[/m]
[m2]Значение[/m]
Слово2
[m1]Чтение[/m]
[m2]Значение[/m]
(перед чтением и значением табуляция)
Подскажите, пожалуйста, как зациклить скрипт. Что-то вроде
Читаем три строки -- Выполняем запрос на добавление
А как сделать чтобы он до конца файла прошёлся? | |
|
|
|
|
|
|
|
для: Qiao
(06.09.2007 в 19:09)
| | теги именно [m1] и [m], а не [m1] и [/m1] ? | |
|
|
|
|
|
|
|
для: bronenos
(06.09.2007 в 19:47)
| | Ошибки нет - именно [/m]. Но как мне кажется, это не имеет отношение к добавлению в базу (хотя в дальнейшем возиться с обработкой текста придётся много). Сейчас главное разместить всё в три столбца базы: Слово -- Чтение -- Значение. Подскажите логику скрипта. | |
|
|
|
|
|
|
|
для: Qiao
(06.09.2007 в 20:01)
| | Ну если нет никаких пустых строк, то можно сделать так
<?php
$dict = fopen("dictionary.txt", "r");
$insert = array();
$i = 0;
/* Подключаемся к базе */
while (!feof($dict) && $line=fgets($dict))
{
$i++;
switch ($i)
{
case 1:
$insert[0] = trim($line);
break;
case 2:
preg_match("/\[m1\](.*?)\[m\]/", $line, $ins);
$insert[1] = $ins[1];
break;
case 3:
preg_match("/\[m2\](.*?)\[m\]/", $line, $ins);
$insert[2] = $ins[1];
for ($j=0; $j<3; $j++) $insert[$j] = mysql_escape_string($insert[$j]);
mysql_query("insert into DICTIONARY set word='$insert[0]', read='$insert[1]', translate='$insert[2]'");
$i = 0;
break;
}
}
fclose($dict);
?>
|
| |
|
|
|
|
|
|
|
для: Qiao
(06.09.2007 в 19:09)
| | Сорри за оффтоп.. а где такой словарь взять можно?
в лингво они вроде компилированные...
_________
оказца скачал неудачно.. попадаются и некомпилированные. | |
|
|
|
|
|
|
|
для: kasmanaft
(06.09.2007 в 20:28)
| | Спасибо за скрипт, смысл усёк. | |
|
|
|