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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 14:48   #31
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

например как? есибы я знал как это сделать я бы к вам не обращался
dem66 вне форума Ответить с цитированием
Старый 03.06.2011, 15:45   #32
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

возьмите вы для начала функцию parse_ini_file - как раз для вашего типа данных ... уже будет готовый массив
Код:
foreach (parse_ini_file($file) as $key=>$value)
{
  $array = explode(".", $key); // создаем массив с помощью разделения параметра 
  //... затем циклом foreach разбираем этот массив и создаем из него нужный вам + присваиваем конечной ветке значение $value
}
P.S. сейчас не буду писать цикл разбора массива, ничего под рукой нету ... там все равно тестить надо алгоритм ... но думаю суть ясна
Cronos20 вне форума Ответить с цитированием
Старый 03.06.2011, 15:55   #33
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Что именно как? Если вы уже парсили по другому разделителю, то здесь в чем проблема?
motorway вне форума Ответить с цитированием
Старый 03.06.2011, 16:16   #34
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

а вы что совсем не смотрели скриптов? там я просто роделил строки, потом поделил их по знау = и одну часть записал как ключь а вторую как значение. при этом была обработана только одна строчка кторую я указал в ручную. теперь нужно и сам ключь роделить. но ключь может содеожать несколько секций. при этом каждая секция это новый масив. нужно еще и придумать как это все розделить.

Если для вас эта задача проста то для меня она сложна как никогда
dem66 вне форума Ответить с цитированием
Старый 03.06.2011, 16:29   #35
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

При таком количестве орф. ошибок трудно представить, что у вас будет чёткость и в программировании...
Используйте for each, то есть выполняйте операции для всех найденных объектов.
motorway вне форума Ответить с цитированием
Старый 03.06.2011, 16:59   #36
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Код:
<?php                                                                                                                                                                                                                                       
$result = array();                                                                                                                                                                                                                          
$temp_val = &$result;                                                                                                                                                                                                                       
foreach( parse_ini_file('1') as $key => $value){                                                                                                                                                                                            
    $temp_arr = explode('.',$key);                                                                                                                                                                                                          
    $temp_val = &$result;                                                                                                                                                                                                                   
    foreach( $temp_arr as $val){                                                                                                                                                                                                            
        if(!isset($temp_val[$val])){                                                                                                                                                                                                        
            $temp_val[$val] = array();                                                                                                                                                                                                      
        }
            $temp_val = &$temp_val[$val];                                                                                                                                                                                                   
       }                                                                                                                                                                                                                                       
        $temp_val = $value;                                                                                                                                                                                                                 
}                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                            
print_r($result);                                                                                                                                                                                                                           
?>.
С тебя спасибо! Хоть на весы нажми )

Последний раз редактировалось ssdm; 03.06.2011 в 17:03.
ssdm вне форума Ответить с цитированием
Старый 03.06.2011, 17:49   #37
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

огромное спасибо.зайду с компа нажму. вот только вопрос какие даные пихнуть в парс-ини-файл? впихнуть туда $array ? из приведенного мною выше скрипта?
dem66 вне форума Ответить с цитированием
Старый 03.06.2011, 18:05   #38
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

все работает.огромное спасибо,также спасибо всем учасникам. и если не сложро пожалуйста прокоментируйте строки скрипта,хочу разобратся как оно работает
dem66 вне форума Ответить с цитированием
Старый 06.06.2011, 20:40   #39
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

PHP код:
$q '
test.name=MyName;
bassic.storage.url=http://yousitename.ru;
goglebot.rule="robots.txt";
enable=1;
test.description="Mama mila papu";
bassic.storage.title="SITE";
bassic.storage.size="1Gb"
'
;

// С вводом разберётесь сами


$q str_replace("\r"""$q);
$q_arr explode("\n"$q);
$results = array ();
// Простейший парсер
foreach ($q_arr as $q_str) {
    
$q_str_arr explode("="$q_str2);
    
// Проверка на наличие "="
    
if (!isset($q_str_arr[1])) {
        continue;
    }
    
    
$keys explode("."$q_str_arr[0]);
    
    
// Шелушим мусор
    
$q_str_arr[1] = preg_replace("~^(.*);$~""\\1"$q_str_arr[1]);
    
$value preg_replace("~^\"(.*)\"$~""\\1"$q_str_arr[1]);
    if (
$value == $q_str_arr[1]) $value preg_replace("~^\'(.*)\'$~""\\1"$q_str_arr[1]);
    
// Строим ветку
    
for ($i count($keys) - 1$i >= 0$i--) {
        
$value = array (
            
$keys[$i]=>$value);
    }
    
// Объединяем с остальными результатами
    
$results array_merge_recursive($results$value);

}
// С выводом тоже сами разберитесь, не маленький.
var_dump($results); 
UPD: не заметил, что уже ответили
graymaster вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема в решении задачи [С++] asp1k Помощь студентам 0 17.11.2010 16:16
помогите в решении задачи. gaddam Паскаль, Turbo Pascal, PascalABC.NET 2 24.11.2008 19:06
Помогите в решении задачи! Toxass Общие вопросы Delphi 16 19.11.2008 22:06