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 :: Помогите спарсить ini файл

 PHP.SU

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


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

> Описание: в ключах присутствуют не только буквы и цифры
Ley4ik_Russia
Отправлено: 05 Апреля, 2011 - 10:45:21
Post Id



Гость


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


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




Проблема в одном ключе ини файла, в нем используются скобки Lease (minutes)=2880 parse_ini_file выдает ошибку в строке где находится этот ключ, при этом его нельзя удалить так как он снова создастся программой которая использует этот файл...вот такая загагулина....


-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
Viper
Отправлено: 05 Апреля, 2011 - 11:03:55
Post Id



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


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


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




Ley4ik_Russia
Цитата:
Characters ?{}|&~![()^" must not be used anywhere in the key and have a special meaning in the value.


PS! Писать свой парсер.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Ley4ik_Russia
Отправлено: 05 Апреля, 2011 - 11:06:52
Post Id



Гость


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


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




Viper пишет:
PS! Писать свой парсер.


Странно и почему я совсем не удивлен))) ну если честно то я совсем расстроился(((


-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
Мелкий Супермодератор
Отправлено: 05 Апреля, 2011 - 11:09:11
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. preg_match('/Lease [(]minutes[)]=(\d+)/ims',file_get_contents("ini.file"),$arr);
  2. var_dump($arr);


-----
PostgreSQL DBA
 
 Top
Ley4ik_Russia
Отправлено: 05 Апреля, 2011 - 11:12:42
Post Id



Гость


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


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




Мелкий пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match('/Lease [(]minutes[)]=(\d+)/ims',file_get_contents("ini.file"),$arr);
  2. var_dump($arr);


но парсер то придется все таки свой писать((( потому что к сожалению в ини файле не 1 ключ(((


-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
Мелкий Супермодератор
Отправлено: 05 Апреля, 2011 - 11:22:10
Post Id



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


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


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




Как вариант - вытянули нужное значение, удалили эту строку, записали оставшееся куда-нибудь в темпы и распарсили штатными средствами.


-----
PostgreSQL DBA
 
 Top
Ley4ik_Russia
Отправлено: 05 Апреля, 2011 - 11:24:18
Post Id



Гость


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


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




Мелкий пишет:
Как вариант - вытянули нужное значение, удалили эту строку, записали оставшееся куда-нибудь в темпы и распарсили штатными средствами.


а вот это уже похоже на свет в конце тунеля))) надежда появилась...


-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
OrmaJever
Отправлено: 05 Апреля, 2011 - 12:38:30
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Растерялся
PHP:
скопировать код в буфер обмена
  1. $f = file_get_contents('file.ini');
  2. $strings = explode("\n", $f);
  3. $arr = array();
  4. foreach($strings as $str)
  5. {
  6.   $p = explode('=', $str);
  7.   $arr[$p[0]] = $p[1];
  8. }
  9. print_r($arr);

По идее в $arr должны быть все параметры с ключами.

(Отредактировано автором: 05 Апреля, 2011 - 12:39:03)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Ley4ik_Russia
Отправлено: 05 Апреля, 2011 - 13:50:52
Post Id



Гость


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


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




OrmaJever пишет:
Растерялся
PHP:
скопировать код в буфер обмена
  1. $f = file_get_contents('file.ini');
  2. $strings = explode("\n", $f);
  3. $arr = array();
  4. foreach($strings as $str)
  5. {
  6.   $p = explode('=', $str);
  7.   $arr[$p[0]] = $p[1];
  8. }
  9. print_r($arr);

По идее в $arr должны быть все параметры с ключами.


Спасибо!!!!


-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
Ley4ik_Russia
Отправлено: 09 Апреля, 2011 - 21:47:09
Post Id



Гость


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


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




Спойлер (Отобразить)


Вот этой функцией решил пользоваться для парсинга файла, подкиньте код функций для открытия ини, чтения из файла и для записи в него, чтоб синтаксис использования был примерно такой ini_open("File.ini"); ini_read("section", "key"); ini_write("section", "key", $value)


-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB