Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запись и чтение переменных в php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: вопросы чайника
Egorrr
Отправлено: 14 Декабря, 2009 - 17:54:38
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Как записывать в текстовый файл переменные, и как читать этот файл так, чтобы в скрипте php появились эти переменные?

Пример: есть файл $filename = "file.txt" с содержимым

$a=10;$b=20;
или
&a=10&b=20

Чтение файла:
PHP:
скопировать код в буфер обмена
  1. $lock = fopen($filename,"a+");
  2. $contents = fread($lock, filesize($filename));
  3. fclose($filename);
  4. echo ($a); // ничего не происходит, а в идеале должны получить число 10 :P
  5. echo($contents);


Как корректно читать и писать данные в файл, чтобы мы имели готовую переменную $a?
Особенно интересует запись массивов в текстовый файл.

И еще вопрос: отправлять данные, в частности, во флеш, можно только с помощью "echo", или есть другой способ?

(Отредактировано автором: 14 Декабря, 2009 - 17:57:37)

 
 Top
Ch_chov
Отправлено: 14 Декабря, 2009 - 18:15:49
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




 
 Top
Мелкий Супермодератор
Отправлено: 14 Декабря, 2009 - 18:17:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Массивы-то просто: http://php.su/functions/?serialize для записи и http://php.su/functions/?unserialize для чтения.

хм, написано, что переменные так же можно писать.

PS: да, долго печатаю Улыбка

(Отредактировано автором: 14 Декабря, 2009 - 18:19:32)



-----
PostgreSQL DBA
 
 Top
Egorrr
Отправлено: 14 Декабря, 2009 - 19:26:58
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Спасибо. Только формат хранения данных после serialize не порадовал Улыбка

Решил сделать простую БД для сохранения сообщений пользователей, но на сервере MySql нет (такой тарифный план у хостинг-провайдера Улыбка, и теперь думаю что проще - создавать скриптом кучу текстовых файлов а-ля "база данных", или использовать БД MySql. Может есть вариант, как сделать БД, если нет MySql? Или MySql можно скачать и поставить?

(Отредактировано автором: 14 Декабря, 2009 - 19:31:40)

 
 Top
Ch_chov
Отправлено: 14 Декабря, 2009 - 19:31:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




 
 Top
Egorrr
Отправлено: 15 Декабря, 2009 - 01:06:43
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




А как оптимально сделать БД с комментами к файлам: создавать под каждый файл таблицу с комментами (имя, комментарий, дата...) или все сделать в одной таблице, и каждый раз производить поиск по параметрам? Не понял
В первом случае теоретически будет несколько тысяч таблиц, а во втором - наверное долгое обращение и поиск в БД...

В чем ошибка при такой записи в БД?
PHP:
скопировать код в буфер обмена
  1. $db = sqlite_open('comments.db', 0666, $sqliteerror));
  2. sqlite_query($db, "INSERT INTO comments VALUES (10, 20, 'sdsd', 30)");

Хм

(Отредактировано автором: 15 Декабря, 2009 - 01:14:25)

 
 Top
biperch
Отправлено: 15 Декабря, 2009 - 01:25:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




делай все в базе одной таблицей
а потом при выводе сортируеш по дате
 
 Top
Ch_chov
Отправлено: 15 Декабря, 2009 - 05:46:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Две таблицы:
Одну для файлов, другую для комментариев.
В последней для каждого комментария указывай ИД файла, которому он пренадлежит.

Цитата:
В чем ошибка при такой записи в БД?

Скобку лишнию убери, в первой строке.

(Отредактировано автором: 15 Декабря, 2009 - 05:47:50)

 
 Top
Hunter
Отправлено: 15 Декабря, 2009 - 09:50:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




в одной базе в обной таблице все намного проще использовать, не придется лишний раз подключаться к базе да и таблицу достаточно один раз выбрать..
в базах данных нет каких либо ограничений вынуждающих использование нескольких таблиц или баз в место одной для описанной задачи..
"куча файлов" - не лучший вариант для хранения данных (любых), если хостер не дает базу данных меняй хост не задумываясь..в наше время это не так дорого)
 
 Top
Egorrr
Отправлено: 15 Декабря, 2009 - 10:43:18
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Да , скобку не заметил) Только запись в базу все-равно не происходит...
Может посоветуете php-редактор с подсветкой ошибок синтаксиса без запуска интерпретатора (т.к. на лок. компе сервера нет). Использую Php Expert Editor 4.2 - неплохой, только синтаксис видимо проверяется после запуска скрипта Недовольство, огорчение

А при скольки записях (строк в таблице) базы поиск по ней будет занимать секунды?

И как корректно записывать формат даты в базе? Там есть спец. формат поля TIME, DATE, TIMESTAMP, но туда будет записываться дата и время в удобном мне формате из date(), чтобы сразу отображать без преобразований.

Hunter, мой хостер меня во всем устраивает, особенно в скоростной и компетентной техподдержке Язычок - кто вам еще ответит на вопросы через 20 минут по любому скрипту (!) Радость Мой тариф не предусматривает базу, а так ессно она на хосте есть.

(Отредактировано автором: 15 Декабря, 2009 - 11:06:18)

 
 Top
biperch
Отправлено: 15 Декабря, 2009 - 11:06:49
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




я пользуюсь phpDesign и другими
но пхп и апачь всерано иметь надо, ибо как проверить скрипт
Базы данных очень быстро работают, а за время не беспокойся, задержки происходят от соединений
TIMESTAMP 2009-12-15 кажись так
 
 Top
Hunter
Отправлено: 15 Декабря, 2009 - 11:23:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




Egorrr не проще поменять тариф? ни одна система файлов не заменит базы данных, над созданием которых трудились наверно очень компитентные специалисты))))))))
что касается наличия вэб сервера на локальном компе: попробуй "Дэнвер" с его официального сайта, он включает свежую версию апача, рнр, MySQL + удобный интерфейс для работы с базами данных - phpMyAdmin. Все уже настроено и практически готово для использования. Ей богу очень удобно обкатывать скрипты. Думаю не пожалеешь.
 
 Top
Egorrr
Отправлено: 15 Декабря, 2009 - 20:23:25
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Можно ли в таблицу базы данных вставить новую сроку в начало таблицы или в любое место таблицы с помощью INSERT? По умолчанию это какбе делается в конец таблицы.
 
 Top
Stierus Супермодератор
Отправлено: 16 Декабря, 2009 - 08:42:35
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




для файла с
Цитата:
$a=10;$b=20;
можно include
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB