Вопрос № 109982: Здрасти всем.
У меня есть документ word-а (или excel) определенной структуры, могу ли я используя PHP его прочитать его и записать сразу в БД. т.е. мне нужно что бы моя БД заполнялась автоматически и полльзователь не вводил ни каких данных....
Вопрос № 109.982
Здрасти всем.
У меня есть документ word-а (или excel) определенной структуры, могу ли я используя PHP его прочитать его и записать сразу в БД. т.е. мне нужно что бы моя БД заполнялась автоматически и полльзователь не вводил ни каких данных.
Отправлен: 18.11.2007, 13:51
Вопрос задала: KInika (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: RussianGM
Здравствуйте, KInika!
Я бы вам по советовал использовать файл расширения .csv (близкое к excel).
Тогда можно использовать такую конструкцию:
<?php
$p=@mysql_connect($dbhost,$dbuser,$dbpas); //соединяемся с хостом нашей базы
if(!$p){ echo "не возможно соединиться с базой";} // если не соединились то выводим сообщение
mysql_select_db($dbname, $p); //выбираем нашу базу данных
mysql_query("set names cp1251"); //устанавливаем кодировку для корректной работы с русским языком
$file = fopen ("text.csv","r"); //открываем наш файл "text.csv" в режиме чтения "r"
while ($dat = fgetcsv ($file,20000, " ")) //структура fgetcsv() : читаем из нашего открытого файла "$file",
//20000 - число читаемых символов, цифра должна быть больше чем количество символов в самой длинной строке нашего файла,
//3 параметр - символ разделителя слов, в данном случае табуляция(Tab)
//за один проход цикла считывается 1 строка
{
$d="insert into my_table values('$dat[0]','$dat[1]','$dat[2]')"; //создаем запрос для нашей базы
if (mysql_query($d)) echo "Успешно добавлено"; //если запрос выполнен выводим сообщение
}
mysql_close($p);
fclose($file);
//закрываем соединение с нашей базой и text.csv
?>
P.S. Самый простой способ пулучить файл .csv - это переименовать файл.txt в файл.csv
Удачи.
Ответ отправил: RussianGM (статус: Посетитель)
Ответ отправлен: 18.11.2007, 15:37
Отвечает: Товарищ Бородин
Здравствуйте, KInika!
В пакете PEAR есть класс для работы с Экселевскими файлами(насчет того, что он сможет прочитать вордовские файлы, я не уверен). Он позволяет выдирать оттуда информацию, соответственно, информацией можно как-то оперировать, в том числе и записать в БД. В документации к PEAR Вы сможете найти более точную информацию. Сам я PEAR`ом никогда не пользовался (и, наверно, не буду, ибо ругают его очень сильно).
Поэтому ответ на Ваш вопрос - да. Но сначала надо провести детальную разведку в этой части, Вы ведь не сказали, что имеется под определенной структурой.
--------- Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Товарищ Бородин (статус: Студент)
Ответ отправлен: 18.11.2007, 16:39 Оценка за ответ: 5 Комментарий оценки: Спасибо, я не знала что есть такой класс, но идеальным для меня был бы вариант работы с документами word. Но и с Экселевскими файлами может когда нибудь придется работать.