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.SU

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


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

> Без описания
vadim-narochnyi
Отправлено: 12 Ноября, 2012 - 14:26:13
Post Id


Новичок


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


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




Привет. С помощью функции serialize() сгенерировал значение массива и поместил его в текстовый файл.
Нужно открыть файл и восстановить массив обратно, то что функцией unserialize() делается знаю, но вот дальше...

Так ничего не выдает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $text = file('db.dat');
  2. $a = unserialize($text);


и так тоже


Нужна помощь!
 
 Top
Мелкий Супермодератор
Отправлено: 12 Ноября, 2012 - 14:43:27
Post Id



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


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


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




Второй вариант правильный.

phpfaq.ru/debug , какие ошибки, unserialize пишет где проблема, когда не может десериализовать.


-----
PostgreSQL DBA
 
 Top
armancho7777777 Супермодератор
Отправлено: 12 Ноября, 2012 - 14:45:04
Post Id



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


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


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




 
 Top
vadim-narochnyi
Отправлено: 12 Ноября, 2012 - 15:17:34
Post Id


Новичок


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


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




vadim-narochnyi пишет:
ничего не выдает

(Добавление)
Если что в файле следующее значение:

CODE (htmlphp):
скопировать код в буфер обмена
  1. a:1:{s:5:"vadim";a:2:{s:5:"email";s:13:"vadim@mail.ru";s:4:"site";s:12:"www.vadim.ru";}}

(Добавление)
Вот так работает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $text = 'a:1:{s:5:"vadim";a:2:{s:5:"email";s:13:"vadim@mail.ru";s:4:"site";s:12:"www.vadim.ru";}}';
  2. $a = unserialize($text);
  3. print_r($a);

(Добавление)
Что за фигня!?
 
 Top
armancho7777777 Супермодератор
Отправлено: 12 Ноября, 2012 - 16:32:12
Post Id



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


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


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




vadim-narochnyi, скоррее всего не верно указан путь к файлу, а вывод ошибок отключен.

Что выводит?

(Отредактировано автором: 12 Ноября, 2012 - 16:33:24)

 
 Top
vadim-narochnyi
Отправлено: 12 Ноября, 2012 - 16:35:05
Post Id


Новичок


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


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




armancho7777777 Пусто, ничего не выводит!
(Добавление)
Путь указан верно, есть просмотреть так:

Выводит содержимое файла
 
 Top
armancho7777777 Супермодератор
Отправлено: 12 Ноября, 2012 - 16:39:50
Post Id



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


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


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




Гм... Ничего не пойму...
 
 Top
LIME
Отправлено: 12 Ноября, 2012 - 16:41:56
Post Id


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


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


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




display_errors
 
 Top
armancho7777777 Супермодератор
Отправлено: 12 Ноября, 2012 - 16:42:31
Post Id



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


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


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




Попробуйте по новой сериализовать и записать.
Только программно, а ни с окна скапировать текст и вставить в файл.

Потом проверьте.

LIME пишет:
display_errors

LIME, он уже делал это.

(Отредактировано автором: 12 Ноября, 2012 - 16:44:09)

 
 Top
vadim-narochnyi
Отправлено: 12 Ноября, 2012 - 16:43:56
Post Id


Новичок


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


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




armancho7777777 Он изначально записан программно, а не вставлен!
 
 Top
LIME
Отправлено: 12 Ноября, 2012 - 16:45:23
Post Id


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


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


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




error_reporting это другое
 
 Top
sKaa
Отправлено: 12 Ноября, 2012 - 16:47:06
Post Id



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


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


Для начала тогда уж :
 
 Top
vadim-narochnyi
Отправлено: 12 Ноября, 2012 - 16:48:06
Post Id


Новичок


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


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




sKaa Я написал выше, это работает, выводит содержимое файла!
 
 Top
sKaa
Отправлено: 12 Ноября, 2012 - 16:48:57
Post Id



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


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


vadim-narochnyi, Вы написали только про содержимое файла.
 
 Top
vadim-narochnyi
Отправлено: 12 Ноября, 2012 - 16:51:44
Post Id


Новичок


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


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




Всё, разобрался. Я делал так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. fp = fopen("db.txt", "a");
  3. $mytext = serialize($array);
  4. $test = fwrite($fp, $mytext);
  5. if ($test) echo 'Данные в файл успешно занесены.';
  6. else echo 'Ошибка при записи в файл.';
  7. fclose($fp);
  8.  


А сделал так как посоветовали и заработало

(Добавление)
Всем спасибо!
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB