Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод php массива на perl 
V
    Опции темы
admsasha
Дата 15.9.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Есть некая программа, которая пишит некий массив в файл, мне надо на perl его пропасить, как это лучше всего сделать, прошу помочь с кодом

Примерное содержания файла...
Код

a:2:{s:2:"qw";a:3:{i:0;s:3:"ba1";s:14:"192.168.200.77";};s:5:"qwerty";a:4:{i:0;s:3:ba2;s:14:"192.168.200.11";}}


php кодеры, если знаете как правильно это называется или структуту этого файла, прошу отписаться...   smile 

P.S. по случайности я мог и опечататься в этом коде, так как набирал ручками, если в чем то сомневаетесь, спрашивайте... возможно и опечатка.
PM MAIL WWW ICQ Jabber   Вверх
nitr
Дата 15.9.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



admsasha, ты так вопроса и не задал smile телепатировать снова надо smile
и если возможна очепятка, сразу приведи верный исходник



--------------------
PM   Вверх
TwiSteR
Дата 16.9.2006, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



split (сплитить), сначала по ; а затем если требуется то по :

Файл очень похож (если мне не изменяет память) на файл профайла из движка хворума ExBB
--------------------
PM MAIL WWW ICQ   Вверх
korob2001
Дата 17.9.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Не совсем понятно. Какой результат ты хочешь получить?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
admsasha
Дата 17.9.2006, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(nitr @  15.9.2006,  23:22 Найти цитируемый пост)
admsasha, ты так вопроса и не задал  телепатировать снова надо 


Вопросов несколько, я только непоставил знака вопрос
1. мне надо на perl его пропасить, как это лучше всего сделать ?
2. php кодеры, если знаете как правильно это называется  ?


На второй вопрос я нашел ответ, это называется - serialize (PHP::Serialization) , только с примером пока проблемы в man нету нормального примера.  smile 
PM MAIL WWW ICQ Jabber   Вверх
Nab
Дата 17.9.2006, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Интересный дампер smile и структура вполне понятная... 
Насчет самому, можно ппробовать, но я подозреваю есть такой модуль у перла, поискать нужно...

Поиск на CPAN ....

Вот нашелся smile
http://search.cpan.org/~jbrown/PHP-Seriali...erialization.pm

Устанавливаем и используем smile


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
admsasha
Дата 17.9.2006, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(Nab @  17.9.2006,  14:13 Найти цитируемый пост)
Поиск на CPAN ....
Вот нашелся 
http://search.cpan.org/~jbrown/PHP-Seriali...erialization.pm
Устанавливаем и используем  

Это-то я нашел...

$encoded="a:2:{s:2:"qw";a:3:{i:0;s:3:"ba1";s:14:"192.168.200.77";};s:5:"qwerty";a:4:{i:0;s:3:ba2;s:14:"192.168.200.11";}}";
my $hashref = unserialize($encoded);

а что дальше ? как сделать вывод ? 
print $hashref[1] - нечего не выводит
PM MAIL WWW ICQ Jabber   Вверх
Nab
Дата 17.9.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Вот тебе разбирайся smile
Код

# Это для красоты, добавляет отступы...
my $ident_each = "\t";
my $ident = '';
sub show_value {
# получаем ссылку
    my $ref_value = shift;
    my $output = '';
# если нам передали ссылку на hash
    if (ref $ref_value eq 'HASH') {
# добавляем красоту
        $output .= $ident."{\n";
        $ident .= $ident_each;
# проходим по всему хешу 
        foreach(keys %$ref_value){
# и для каждого элемента вызываем рекурсивно эту же функцию
            $output .= $ident.$_." = ".show_value($ref_value->{$_})."\n"
        }
# орять для красоты.
        $ident =~ s/$ident_each$//;
        $output .= $ident."},\n";
# здесь аналогично но для массива
    } elsif (ref $ref_value eq 'ARRAY') {
        $output .= $ident."[\n";
        $ident .= $ident_each;
        foreach(0..$#$ref_value){
            $output .= $ident.$_." = ".show_value($ref_value->[$_])."\n"
        }
        $ident =~ s/$ident_each$//;
        $output .= $ident."],\n";
# если это ссылка на код, что в конкретном случае хоть и не реально, 
# но теоретически допустимо
# то мы ее не обрабатываем а просто выводим информацию что это подпрограмма
    } elsif (ref $ref_value eq 'CODE') {
        $output .= $ident."this is subroutine\n"
# если это ссылка просто на скаляр, мы его разъименовываем 
# и вывордим с отступом для красоты
    } elsif (ref $ref_value eq 'SCALAR') {
        $output .= $ident.$$ref_value
# ну и теперь последний вариант эт когда у нас вообще не ссылка
# мы просто выводим значение
    } else { $output .= $ident.$ref_value }
# возвращаем то что напвыводили :)
    return $output;
}

print show_value($hashref);


Это сообщение отредактировал(а) Nab - 17.9.2006, 11:03


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
admsasha
Дата 17.9.2006, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(Nab @  17.9.2006,  17:31 Найти цитируемый пост)
Вот тебе разбирайся 

ага, по выводу, то что и надо...  smile 
буду пробывать разбираться...  smile 

Это сообщение отредактировал(а) admsasha - 17.9.2006, 11:03
PM MAIL WWW ICQ Jabber   Вверх
Nab
Дата 17.9.2006, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Ну я старался чтоб красиво вывело, а так конечно там можно убрать финтиклюшек много... 
принцип должен быть понятен ...  Я коментарии добавить поленился smile щас исправлюсь...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
admsasha
Дата 17.9.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(Nab @  17.9.2006,  17:56 Найти цитируемый пост)
Ну я старался чтоб красиво вывело, а так конечно там можно убрать финтиклюшек много... 
принцип должен быть понятен ...  Я коментарии добавить поленился  щас исправлюсь... 


Спасибо !!! принцип понял ! 
а мне красиво не надо... т.к. вывод мне не нужет... только внутрення обработка.
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.