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

Форум PHP

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

 

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

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

тема: Опять плоские файлы
 
 автор: WebTech   (01.06.2006 в 17:54)   письмо автору
 
 

Снова про плоские файлы.

Перечитал все темы, которые смог найти, про плоские файлы. Все равно, если честно, непонятно.
У меня в PHP, в /ext, есть следующие dll-ки: php_dba.dll, php_dbase.dll, php_dbx.dll. Какие форматы плоских файлов я могу использовать (или правильно сказать - типы файлов? Что такое формат и что такое тип?)
Какой формат наиболее удобный и эффективный?

   
 
 автор: cheops   (02.06.2006 в 00:02)   письмо автору
 
   для: WebTech   (01.06.2006 в 17:54)
 

Вы можете определить доступные вам форматы при помощи фукнции dba_handlers().

   
 
 автор: WebTech   (02.06.2006 в 11:29)   письмо автору
 
   для: cheops   (02.06.2006 в 00:02)
 

Функция выдает

Array
(
    [0] => cdb
    [1] => cdb_make
    [2] => db3
    [3] => inifile
    [4] => flatfile
)

Что это значит? Формат и тип - это одно и то же? И что, в итоге, лучше использовать?

   
 
 автор: cheops   (02.06.2006 в 12:30)   письмо автору
 
   для: WebTech   (02.06.2006 в 11:29)
 

Да собственно всё равно - всех проще использовать flatfile... А вы dbf-файлы не хотите использовать http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5081 - они поинтереснее и позволяют гораздо больше, чем обычные плоские файлы.

   
 
 автор: WebTech   (03.06.2006 в 12:06)   письмо автору
 
   для: cheops   (02.06.2006 в 12:30)
 

Почитал мануалы по dBase на php.net
Появилось несколько вопросов
1. Какая может быть максимальная длина строкового типа и числового типа?
2. dbase_get_header_info выдает информацию заголовка. Что содержится в offset и format?

   
 
 автор: cheops   (03.06.2006 в 14:35)   письмо автору
 
   для: WebTech   (03.06.2006 в 12:06)
 

1. Если честно на вскидку не скажу, вероятно что-то в районе 65536 символов
2. format содержит формат в столбца используя спец-символы семейства функций printf(). offset - указывает число байт от начала записи, с которых начинается текущее поле.

   
 
 автор: WebTech   (03.06.2006 в 12:35)   письмо автору
 
   для: cheops   (02.06.2006 в 12:30)
 

Еще вопросы возникли...
В мануале сказано, что блокировка не поддерживается. Блокировка файла базы данных, как я думаю. Можно ли как-нибудь все-таки заблокировать файл? Может быть это можно сделать с помощью flock()?

   
 
 автор: cheops   (03.06.2006 в 14:37)   письмо автору
 
   для: WebTech   (03.06.2006 в 12:35)
 

С помощью flock() наверное не получиться... так как этой функции необходим дескриптор открытого при помощи fopen() файла.

   
 
 автор: WebTech   (03.06.2006 в 16:54)   письмо автору
 
   для: cheops   (03.06.2006 в 14:37)
 

Спасибо за Ваши ответы :-)
А что, если открыть файл базы данных с помощью fopen() для получения дескриптора?
Я так понимаю, что все эти функции используют одни и те же системные вызовы, а с точки зрения операционной системы файл базы данных - это такой же файл, как и все остальные. Если заблокировать файл, каким бы способом он ни был открыт, то он будет заблокирован для записи и для всех функций PHP ?
Я, на самом деле, не очень хорошо понимаю, как происходит доступ к файлам на уровне операционки и файловой системы. Может быть я и ошибаюсь :-(

   
 
 автор: cheops   (03.06.2006 в 22:31)   письмо автору
 
   для: WebTech   (03.06.2006 в 16:54)
 

Можно попробовать, но я если честно не уверен сработате ли...

   
 
 автор: WebTech   (05.06.2006 в 14:12)   письмо автору
 
   для: cheops   (03.06.2006 в 22:31)
 

Не работает :-(
Я, тем не менее, попробовал написать маленькую гостевуху с помощью dBase. Однозначно, это лучше, чем просто файлы :-) Конечно, отсутствие блокировки не есть гуд. Но, можно использовать dBase для небольших проектов, где нет доступа к настоящему серверу SQL и СУБД, и где количество обращений к БД не очень велико и стало быть вероятность одномоментного обращения к базе мала :-)
На скорость не тестировал.

   
Rambler's Top100
вверх

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