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 »   

> Без описания
gigs
Отправлено: 03 Сентября, 2012 - 21:58:35
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




Помогите пожалуйста решить такую задачу, допустим есть текстовый файл и в нем такие данные:
CODE (html):
скопировать код в буфер обмена
  1. 1.Первый
  2. 2.Второй
  3. 3.Третий
  4. 4.Четвертый
  5. 5.Пятый

можно ли в php сделать так чтоб мне выводило текст только с второй и пятой строки то есть: 2.Второй и 5.Пятый. Вот как это можно сделать ?
 
 Top
KingStar
Отправлено: 03 Сентября, 2012 - 22:02:41
Post Id



Участник


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


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




например

PHP:
скопировать код в буфер обмена
  1. $array = file('data/file.txt');
  2. echo $array['1']; /* выводим 2-ю строку */
  3. echo $array['4']; /* выводим 5-ю строку */


-----
То что программа работает, не означает что она написана правильно!
 
 Top
gigs
Отправлено: 03 Сентября, 2012 - 22:20:40
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




как всегда спасибо вам KingStar за помощь, а то я уже собирался заносить все данные в таблицу а потом их оттуда доставать, а оказалось что можно все проще сделать. Поклон
 
 Top
KingStar
Отправлено: 03 Сентября, 2012 - 22:31:31
Post Id



Участник


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


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




все что нужно человеку для полного счастья )))

плиз, рад помочь Подмигивание


-----
То что программа работает, не означает что она написана правильно!
 
 Top
gigs
Отправлено: 03 Сентября, 2012 - 22:34:04
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




а вот еще один вопрос, а можно ли достать вот такие данные:
CODE (html):
скопировать код в буфер обмена
  1. Пример1
  2. 2+2=4;
  3. Пример2
  4. 3+3=6;
  5. Пример3
  6. 4+4=8;

нужно достать только сами примеры: 2+2=4; 3+3=6; 4+4=8; но только не по строке а по слову Пример1,2 и 3 типа как в предыдущем коде. Я пробовал делать так:
PHP:
скопировать код в буфер обмена
  1. $array = file('data/file.txt');
  2. echo $array['Пример1'];

но ничего не вышло.
 
 Top
KingStar
Отправлено: 03 Сентября, 2012 - 22:38:37
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1. $array = file('data/file.txt');
  2. echo $array['1']; /* 2+2=4; */
  3. echo $array['3']; /* 3+3=6; */
  4. echo $array['5']; /* 4+4=8; */


каждая строка имеет номер начиная с 0 (нуля), в переменной нужно указывать номер строки

(Отредактировано автором: 03 Сентября, 2012 - 22:40:50)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
gigs
Отправлено: 03 Сентября, 2012 - 22:51:11
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




ну это немного не то что я хотел но всеравно спасибо. Я имел ввиду чтоб вместо номера строки вводить название например Пример2 и мне выводит 3+3=6; типа как с ассоциативными массивами. Пример:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $names[0]="Апельсин";
  3. $names[1]="Банан";
  4. $names[2]="Груша";
  5. $names[3]="Помидор";
  6.  
  7. echo $names[0];

но видимо с тектовым файлом так не получится, нужно именно в текстовом файле создавать такой массив, типа так:
PHP:
скопировать код в буфер обмена
  1. $names[Пример1]="2+2=4;";
  2. $names[Пример2]="3+3=6;";
  3. $names[Пример3]="4+4=8;";

и уже с него выводить echo $names[Пример2]

(Отредактировано автором: 03 Сентября, 2012 - 22:52:35)

 
 Top
armancho7777777 Супермодератор
Отправлено: 03 Сентября, 2012 - 22:56:14
Post Id



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


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


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




gigs пишет:
ужно достать только сами примеры: 2+2=4; 3+3=6; 4+4=8; но только не по строке а по слову Пример1,2 и 3

Переделайте текстовый файл в такой вид:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Пример1: 2+2=4;
  3. Пример2: 3+3=6;
  4. Пример3: 4+4=8;
  5.  


Ну, и, реализация:
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array();
  3.  
  4. foreach(file('data/file.txt', FILE_SKIP_EMPTY_LINES) as $val)
  5. {
  6.        list($v, $k) = explode(':', $val);
  7.        $newArr[trim($v)] = trim($k);
  8. }
  9.  
  10. print_r($arr);
  11.  
 
 Top
KingStar
Отправлено: 03 Сентября, 2012 - 22:59:13
Post Id



Участник


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


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




нет, не получишь ты все ровно желаемого результата

функция file читает содержимое файла в массив с ключами номера строки от нуля


-----
То что программа работает, не означает что она написана правильно!
 
 Top
armancho7777777 Супермодератор
Отправлено: 03 Сентября, 2012 - 23:00:56
Post Id



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


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


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




KingStar пишет:
нет, не получишь ты все ровно желаемого результата
функция file читает содержимое файла в массив с ключами номера строки от нуля

И что из этого?)
Я же привёл пример Выше )

(Отредактировано автором: 03 Сентября, 2012 - 23:01:39)

 
 Top
KingStar
Отправлено: 03 Сентября, 2012 - 23:02:55
Post Id



Участник


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


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




ты на время сообщений посмотри Подмигивание мои экстрасенсы на 13 битву уехали Радость
(Добавление)
я писал, еще твоего сообщения не было, и мое никак не относится к нему


-----
То что программа работает, не означает что она написана правильно!
 
 Top
armancho7777777 Супермодератор
Отправлено: 03 Сентября, 2012 - 23:06:21
Post Id



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


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


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




KingStar пишет:
ты на время сообщений посмотри

Ну и ?
Сначало мой пример, затем тремя минутами позже Ваше сообщение.
 
 Top
gigs
Отправлено: 03 Сентября, 2012 - 23:08:41
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




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

(Отредактировано автором: 03 Сентября, 2012 - 23:09:38)

 
 Top
armancho7777777 Супермодератор
Отправлено: 03 Сентября, 2012 - 23:09:20
Post Id



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


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


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




KingStar пишет:
и мое никак не относится к нему

Вот мои-то экстрасенсы точно в отпуске Подмигивание
P.S. И тыкать мне не надо: мы с Вами детей не крестили Радость
 
 Top
KingStar
Отправлено: 03 Сентября, 2012 - 23:11:12
Post Id



Участник


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


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




gigs пишет:
можно и так но что если это очень длинный список скажем список телефонных номеров который состоит из тисячи контактов и нужно из него вывести например номер Васи, а где он именно в этом списке мы не знаем, а знаем только имя, вот поэтому я и написал чтоб искать именно по слову.


для этого нужно быть уверенным, что нет еще одного такого Васи в списке, и пускать вход регулярку


-----
То что программа работает, не означает что она написана правильно!
 
 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