powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / unserialize
11 сообщений из 11, страница 1 из 1
unserialize
    #32276838
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, такое дело: мне надо записывать в текстовый файл инфу с помощью serialize. Я пишу следующее:
Код: plaintext
1.
2.
3.
4.
$fp=fopen( "all" ,'a');
fwrite($fp,serialize($name));
fwrite($fp,serialize($surname));
fclose($fp);

Как теперь считать оттуда инфу и надо ли как-то разделять name и surmane, че тут неправильно и т.п.
...
Рейтинг: 0 / 0
unserialize
    #32277440
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
$fp=fopen( "all" ,'a');
fwrite($fp,serialize(array($name, $surname)));
fclose($fp);


а считывать:
Код: plaintext
1.
list($name, $surname) = unserialize(file_get_contents('all'));


вроде так
...
Рейтинг: 0 / 0
unserialize
    #32279962
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Та запись с сериализацией работает и моим способом, а не считывает, зараза! Не так как я пишу, не способом уважаемого Макса М. Хелп ми плиз! Может, надо каким-то образом указывать число байт, которые необходимо считать? Неужели никто с этим не сталкивался?
...
Рейтинг: 0 / 0
unserialize
    #32280094
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Неужели никто с этим не сталкивался?

ИМХО у тебя неправилен формат данных.
В файл нужно записывать ОДНУ сериализованную величину или несклько сериализованных величин, но с использование спец. разделителей (хотя второй вариант я считаю кривым).

Правильный (с моей точки зрения) вариант чтения/записи я уже показал.
для твоего способа записи мой способ чтения работать конечно же не будет.
...
Рейтинг: 0 / 0
unserialize
    #32280500
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело, что в Интернете и всем, что с ним связано я - чайник. Сериализация у меня получилась уже, а что такое спецразделители?
...
Рейтинг: 0 / 0
unserialize
    #32281119
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Сериализация у меня получилась уже

объясни, что означает эта фраза.

> В том то и дело, что в Интернете и всем, что с ним связано я - чайник.
сериализация имеет лишь отдаленное отношение к Интерету.

> а что такое спецразделители?

символ или набор символов, разделяющих в файле сериализованные величины.
Этот символ или набор символов не должен встречаться в значениях сериализованой величины.
...
Рейтинг: 0 / 0
unserialize
    #32281126
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть, я могу любым символом разделить их? Просто типа например:
$str=$str."|";
или как? Хелп чайнику и не судите строго!
А о сериализации знаю только из php, поэтому и про интернет написала.
И то, что она у меня получилась - это значит, что получилось считывать значения в нормальном виде.
...
Рейтинг: 0 / 0
unserialize
    #32281217
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эх, как с вами, девушками, сложно :)

Лучше расскажи, что в этом файле будет записано?
что находиться в переменных $name, $surname ? (подозреваю что просто строки, но зачем тогда сериализацию использовать ?)
И почему записывать надо именно сериализованные величины ?

по поводу разделителей:
Ты не можешь просто любым символом разделить их.
Какие символы (или комбинации символов) точно не будут встречаться в сериализованных величинах ? (вот их и использовать в качестве разделителя)
Но я уже писал, что идею использования разделителя не одобряю - лучше все данные в один массив запихнуть и уже его сериализовать и записывать (пример я приводил выше)


> это значит, что получилось считывать значения в нормальном виде.
что значит "нормальный вид" ?
Ты же писала, что считать не можешь информацию


PS
я не придираюсь, просто мы на разных языках разговариваем
...
Рейтинг: 0 / 0
unserialize
    #32281888
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс М, я понимаю, что мы на разных языках разговариваем, ведь я в этом чертовом РНР, HTML и Интернете только месяц, а мне уже сайт нужно делать. Естественно, я, чайник, буду тупые вопросы задавать. Но все-таки ты немножко придераешься эх, как с вами, девушками, сложно :) :)
Я не знаю, зачем мне сериализация, я б по-другому сделала, но сказали, что так желательно. Почему - не знаю. И не придерайся к словам, и так чувствую себя кк первоклассница, давно у меня такого не было.
Короче, у меня в файле должны храниться новости: название, краткое описание, полный текст, картинка, дата. Ну подскажи, плиз, как ты бы сделал
...
Рейтинг: 0 / 0
unserialize
    #32282353
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> сказали, что так желательно
вот у этих "умников" и консультируйся.
А вообще "желательно" не значит "обязательно", так что делай как удобно.

Я бы делал все в БД (mysql, postgresq, firebird и т.д. - на что денег хватает).
Если надо на файлах я бы создал такую структуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$news_data = array(
  "1 "=>array(
     "title" => "Название новости" ,
     "description"  =>  "Краткий текст" ,
     "text"  => 'текст новости',
     "date"  =>  "01 . 02 . 03 ",
     "image" => "http://server.ru/images/ha-ha-ha/gy.jpg" ,
  ),
  "2 "=>array(
     "title" => "Название следующей новости" ,
     "description"  =>  "Краткий текст следующей новости" ,
     "text"  => 'текст новости второй новости',
     "date"  =>  "01 . 03 . 03 ",
     "image" => "http://server.ru/images/gy-gy-gy/ha.jpg" ,
  ),
....
);


запись делал бы так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
// читаем старые новости
$news_data = unserialize(file_get_contents( "all" ));

// добавляем к ним новую новость
$news_data = array_merge($news_data, array( "titlte" =>$title,  "description" =>$description ", " text "=>$text, " date "=>$date, " image "=>$image));
// записываем обновленные данные о новостях в файл
$fp = fopen(" all ", " w");
flock($fp,  2 );
fputs($fp, serialize($news_data));
flock($fp,  3 );
fclose($fp);

примерно так (хотя я бы использовал реальную СУБД)
...
Рейтинг: 0 / 0
unserialize
    #32282399
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Я б тоже сделала в mysql. А эти "умники" к программированию никаким боком, но что сделаешь - начальство, а я тут недавно - никакого авторитета :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / unserialize
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]