Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт перевода словаря в базу
 
 автор: Qiao   (06.09.2007 в 19:09)   письмо автору
 
 

Здравствуйте,

Нужно перекинуть словарик в MySQL, соответственно нужен php скрипт. Формат лингво. В самом упрощённом виде имеет следующую структуру (текстовый файл):

Слово1
[m1]Чтение[/m]
[m2]Значение[/m]
Слово2
[m1]Чтение[/m]
[m2]Значение[/m]

(перед чтением и значением табуляция)

Подскажите, пожалуйста, как зациклить скрипт. Что-то вроде
Читаем три строки -- Выполняем запрос на добавление
А как сделать чтобы он до конца файла прошёлся?

   
 
 автор: bronenos   (06.09.2007 в 19:47)   письмо автору
 
   для: Qiao   (06.09.2007 в 19:09)
 

теги именно [m1] и [m], а не [m1] и [/m1] ?

   
 
 автор: Qiao   (06.09.2007 в 20:01)   письмо автору
 
   для: bronenos   (06.09.2007 в 19:47)
 

Ошибки нет - именно [/m]. Но как мне кажется, это не имеет отношение к добавлению в базу (хотя в дальнейшем возиться с обработкой текста придётся много). Сейчас главное разместить всё в три столбца базы: Слово -- Чтение -- Значение. Подскажите логику скрипта.

   
 
 автор: bronenos   (06.09.2007 в 20:22)   письмо автору
 
   для: 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);
?>

   
 
 автор: kasmanaft   (06.09.2007 в 20:28)   письмо автору
 
   для: Qiao   (06.09.2007 в 19:09)
 

Сорри за оффтоп.. а где такой словарь взять можно?
в лингво они вроде компилированные...

_________

оказца скачал неудачно.. попадаются и некомпилированные.

   
 
 автор: Qiao   (06.09.2007 в 21:48)   письмо автору
 
   для: kasmanaft   (06.09.2007 в 20:28)
 

Спасибо за скрипт, смысл усёк.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования