Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2011, 23:00   #1
kos1nus
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 47
Лампочка Запись данных в формате JSON

Доброго времени суток.

Необходимо сделать php страничку, с которой можно было бы обмениваться информацией. Полученную информацию надо как то хранить - записывать в файл. Я выбрал формат JSON, так как он наиболее удобен для меня (прост и неприхотлив).

Знаком с php отдаленно, поэтому слабо представляю как это организовать. Ну предположительно это делается так: произвожу чтение файла, перевожу из JSON'а, произвожу все необходимые действия, перевожу обратно в JSON, записываю в фаил. верно? А теперь представим что мне файил разросся до больших размеров, а мне необходимо подправить какое то одно значение. Несмотря на довольно простую задачу мне все равно надо будет произвести все, вышеописанные действия.

Это мне совсем не нравится. Я подозреваю что есть более адекватные методы для подобных ситуаций. Может можно не читая весь фаил произвести изменения только в определенном месте? Ну и вообще какие у вас будут советы? в какую сторону мне копать?

Это был первый вопрос, а второй как поступить когда к файлу будет сразу несколько обращений, соответственно для кого то он окажется недоступен?

Заранее спасибо
kos1nus вне форума Ответить с цитированием
Старый 31.08.2011, 06:59   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Начинать надо с клиентской части.

- Пишите клиент на JS с отправкой запроса Ajax и приёмом массива JSON с последующей его обработкой.
- Пишите скрипт приёма Ajax запросов от клиента с последующей обработкой. Данные дежрите в стандартном виде (в БД, в файле).
- Сформированный ответ (массив данных) конвертируйте с помощью функций в массив JSON и отсылаете на клиент.

То есть на сервере данные держаться в том виде, в котором Вам нужно, а в JSON преобразуете перед отправкой.
Советую работать с 2-хмерными массивами, т.к. скорость обработки данных растёт в геометрической прогрессии в зависимости от мерности массива. Т.е. 3-хмерный массив будет обрабатываться в 2 раза дольше, а 4-хмерный в 4.
Советую написать свои собственные функции конвертации с ограничением мерности - они будут быстрее стандартных.
Виталий Желтяков вне форума Ответить с цитированием
Старый 31.08.2011, 16:40   #3
kos1nus
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Данные дежрите в стандартном виде (в БД, в файле).
как я уже сказал знаком с PHP очень отдаленно. Я не знаю что значит "в стандартном виде". это как? в текстовом? в бинарном? а в этом случае у меня получиться изменять фаил не читая/записывая его целиком?

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
То есть на сервере данные держаться в том виде, в котором Вам нужно, а в JSON преобразуете перед отправкой.
тоже вариант, но как я написал выше я не знаю в каком виде мне надо хранить данные.
kos1nus вне форума Ответить с цитированием
Старый 31.08.2011, 18:58   #4
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

В Базах данных - есть дофига типов данных от текстового до бинарного(хотя это только указатель на фаил(поле OLE))
В Файле - ты уже сам решаешь как стуктурировать, хранить и обращаться к данным.
Почитай про базы данных, в твоём случае я думаю это то, что нужно.
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Старый 01.09.2011, 07:34   #5
kos1nus
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 47
По умолчанию

вопрос технического плана - если делать бд средствами PHP то фаил базы должен обязательно находиться в корневой папке PHP? в таком случае к нему можно получить доступ введя его адрес.

Последний раз редактировалось kos1nus; 01.09.2011 в 08:28.
kos1nus вне форума Ответить с цитированием
Старый 01.09.2011, 17:18   #6
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Цитата:
Сообщение от kos1nus Посмотреть сообщение
вопрос технического плана - если делать бд средствами PHP то фаил базы должен обязательно находиться в корневой папке PHP? в таком случае к нему можно получить доступ введя его адрес.
Если ты будешь использовать SqlLite то файл с базой можно ложить куда угодно. Но если же ты будешь использовать Mysql то там идет не обращение к файлу (т.к. этим занимает СУБД) А к сакмой базе. Допустим у нас есть база test, а в ней таблица news(c полями: id,author,text,createDate) то делаем так:
Код:
$link = mysql_connect('localhost'//адрес сервера по умолчанию,
                               'root',//имя пользователя
                               'password'//пароль) or die('Невозможно соеденится с БД'.mysql_error());
mysql_select_db('test',$link) or die('Такой базы не существует'.mysql_error()); // Выбор базы
$res = mysql_query("SELECT * FROM `news`",$link) or die('Невозможно выполнить запрос'.mysql_error()); // Выполняем SQL запрос
//получаем и выводим результат запроса
while($row=mysql_fetch_array($res,MYSQL_ASSOC)) {
     echo $row['id'].<br>;
     echo $row['author'].<br>;
     echo $row['text'].<br>;
     echo $row['create_date'].<br>;
}
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 01.09.2011, 17:58   #7
kos1nus
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 47
По умолчанию

Вообще я конечно не хотел заморачиваться с SQL, но наверное это все таки лучший вариант. SQL я знаю почти так же отдаленно как и PHP.

Итог: отдаленное знание PHP + отдаленное знание SQL = много потраченного времени =\
kos1nus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных в mp3 формате (???) Дмитрий "LM" Мультимедиа в Delphi 12 15.05.2011 21:09
Разбор JSON данных AndreyK Общие вопросы Delphi 0 29.10.2010 22:55
Запись файла в формате PDF-A в удаленную БД Oracle AlexIT БД в Delphi 0 30.04.2010 11:58
Помогите разобраться в формате данных Tada-YO Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 18.11.2009 20:41
Запись в БД в формате Date Cantana Помощь студентам 16 24.01.2008 11:30