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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Конфиг файл
nordghost
Отправлено: 10 Февраля, 2012 - 23:43:50
Post Id



Посетитель


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


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




Зддравствуйте, я написал простенькую програмку для мониторинга удалённого сервера, интересует следующий вопрос. Хочу сдделать конфиг файл вида:

MaxConnections: 5
IP addres: 192.168.33.133
Server name: Server1

ну и так далее.....

Интересует вопрос, каким образом вытянуть слова из файла те которые идут после двоеточия, и закинуть их в массив?


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
PATCH
Отправлено: 10 Февраля, 2012 - 23:56:08
Post Id



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


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


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




элементарно ватсон)
PHP:
скопировать код в буфер обмена
  1. $f=file("1.txt");
  2. $i=0;
  3. foreach ($f as $key=>$value)
  4. {
  5.        
  6.         $len = strlen($value);
  7.         $strpos = stripos($value, ":");
  8.         $strpos=$strpos+1;
  9.         $str = substr($value, $strpos,$len);
  10.         $str=trim($str);
  11.         $abc[$i]=$str;
  12.         $i=$i+1;
  13. }

(Отредактировано автором: 10 Февраля, 2012 - 23:56:51)

 
 Top
sKaa
Отправлено: 11 Февраля, 2012 - 00:03:13
Post Id



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


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


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

[+]


Ох и наговнокодили вы тут ))) А причиной всему по-дурацки поставленная задача.

http://php.net/manual/ru/functio...rse-ini-file.php
 
 Top
nordghost
Отправлено: 11 Февраля, 2012 - 00:05:29
Post Id



Посетитель


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


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




Помоему ини это мйкрософтовская фишка, а вот я пишу для Ubuntu
(Добавление)
sKaa пишет:
Ох и наговнокодили вы тут ))) А причиной всему по-дурацки поставленная задача.

http://php.net/manual/ru/function.parse-ini-file.php



спасибо рабодает - благодарность поставлю обоим =)


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
sKaa
Отправлено: 11 Февраля, 2012 - 00:11:30
Post Id



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


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


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

[+]


nordghost пишет:
Помоему ини это мйкрософтовская фишка, а вот я пишу для Ubuntu

Ини файлы есть везде, причем тут майкрософты. Ну да ладно, всю писанину выше можно заменить 3мя строчками :
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.     $f=file("1.txt");
  4.     foreach ($f as $key=>$value){
  5.                 if(!empty($value)){
  6.                 $abc = explode(':', $value);
  7.                 $result[] = array('paramName' => trim($abc[0]), 'paramValue' => trim($abc[1]));
  8.                 }
  9.     }
  10.         var_dump($result);


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

(Отредактировано автором: 11 Февраля, 2012 - 00:13:53)

 
 Top
PATCH
Отправлено: 11 Февраля, 2012 - 00:39:09
Post Id



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


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


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




sKaa пишет:
Ини файлы есть везде, причем тут майкрософты. Ну да ладно, всю писанину выше можно заменить 3мя строчками :

ну не 3юмя строчками)
1) вообще врятли у него там конфиг файл такой большой что пару лишних строчек кода сыграют роль
2)код ты не совсем верно написал, если использовать двухмерный массив то твой код будет медлее моего
3) правильнее так
PHP:
скопировать код в буфер обмена
  1.     $f=file("1.txt");
  2.     foreach ($f as $key=>$value)
  3.         {
  4.                 if(!empty($value))
  5.        {
  6.                 $abc = explode(':', $value);
  7.                 $result[] =trim($abc[1]);
  8.                 }
  9.     }

такой код в полтора раза быстрее моего + полностью соотвествует ТЗ
Цитата:
Интересует вопрос, каким образом вытянуть слова из файла те которые идут после двоеточия, и закинуть их в массив?

ненадо всю строку разделять на до двоеточия и после двоеточия и заносить в двухмерный массив.

(Отредактировано автором: 11 Февраля, 2012 - 00:39:53)

 
 Top
sKaa
Отправлено: 11 Февраля, 2012 - 00:43:55
Post Id



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


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


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

[+]


PATCH, да я те просто показал, что писанина с strlen, strpos тут ваще не нужна, ну а самый быстрый вариант останется через ini файл. Он даже быстрей чем ты в скрипте через define константами пропишешь )
 
 Top
PATCH
Отправлено: 11 Февраля, 2012 - 00:46:59
Post Id



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


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


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




ну знаеш ли) я тестил на файле где 301609 строк) мой код показал 1.4сек код который я упростил твой) 0.9 сек) а учитывая что в конфиг файле не более 3 строк) отсилы ну плин 40 возьмем))) сча кстати затещу ту функцию)) с этой функцией 0.2 секунды) однако от пробелов не избавляет вроде с начала значения и с конца)

(Отредактировано автором: 11 Февраля, 2012 - 00:52:22)

 
 Top
sKaa
Отправлено: 11 Февраля, 2012 - 00:53:49
Post Id



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


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


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

[+]


PATCH пишет:
0.2 секунды
Ну я знал)
 
 Top
nordghost
Отправлено: 11 Февраля, 2012 - 01:02:01
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. $settings = parse_ini_file("config.ini");
  5. echo $settings['one'];
  6. ?>
  7.  
  8.  



Я так решил вопрос всё работает и меня устраивает =) а если будут проблемы с ини то использую ваше


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 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