Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Открытие и чтение файла (php)  (Прочитано 17326 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Nimetz
Гость
« : 03-10-2005 15:31 » 

Добрый день!

Помогите пожалуйста разобраться в php.
Недавно возникла необходимость работы с web.

Нужно прочитать текстовый (.txt) файл и на основе его данных сформировать страницу на сайте. Точнее даже не всю страницу, а лишь вбить прочитанные данные.
Но проблема в том, что файлик не прсотой... В нем не просто текст, а код сгенерированный другой прогой. Этот код нужно прочитать, распознать и сделать из него понятный каждому текст. Код изменяется по мере работы программы. Насколько я понимаю получиться куча if-ов.

Я пробовал открывать простенькие файлы с помощью php, но что-то ничего не получается. Ошибок нет, а слово (которое поставил в текст файла) не выводиться на экран (прога должна была открыть файл для чтения, найти нудное слово и вывести его на страницу html). Подскажите как правильно открыть файл и просто вывести его текст на страницу html. А дальше я сам попробую.

p.s. вообще интересут может ли php проводить такие операции?

-- Большое спасибо за любые ответы! --
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 03-10-2005 16:02 » 

php может много.

Исходники в студию!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Nimetz
Гость
« Ответ #2 : 03-10-2005 16:18 » 

<сорри, что темку не туда кинул, у вас тут форумов стока... >

Я так понял от меня требуется текст файла который надо читать? Если так то...
Строки которые надо читать:
[time] {x.a.type1 #1 #2} param0

либо:
[time] {x.a.type1 #1 #2} param0 {x.b.type2 #1 #2} param1

[time] время появления строки
{x.a.type1 #1 #2}
х - постоянный параметр
а и b - два буквенных значения (g/r), если первый "g" то второй "r" и наоборот
type1 и type2 - различные значения (тоже текстовые) - имена типов проще говоря
#1 - номер type
#2 - номер (1-16), определяется в начале файла - определяет чей тип
param0 и param1 - взамидойствие между типами (текст)

Все числа кроме [time] целые.
----
В ообще я бы и сам разобрался, мне главное понять как открыть файл чтобы провести банальное сравнение на заданное число/текст и распечатать поддверждение, что такое в тексте есть.
« Последнее редактирование: 03-10-2005 16:21 от Nimetz » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 03-10-2005 16:38 » 

База:
http://www.php.net/manual/ru/function.file.php
Код:
$f = file("filename");
for ($i = 0; $i < count($f); $i++ )
{
    // ... обработка строк
}
Будет лучше, если ты примедешь сами строки.
Например, не я ясно:
1) "Все числа кроме [time] целые" - значит действительное число? Какой фомат? Прямоугольные скобки реально есть?
2) "х - постоянный параметр" - как это в тексте будет?
3) "#1" - знак "#" присутствует?
4) "param0 и param1 - взамидойствие между типами (текст)" - какой текст? Пробелы есть, или ограничители?

Для разбора строк на лексические состовляющие рекомендую регулярные выражения.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Nimetz
Гость
« Ответ #4 : 03-10-2005 17:33 » 

Ой, слушай я просто не ожидал что тут так подробно подскажут (думал пнут ссылкой и все).
Конкретно вот примеры двух строк которые подлежат обработки

[15.18] {x.g.name 59 1} create
[142.80] {x.g.name 69 2} action {x.r.name 62 1} result

name - название (на англ.)

Я бы просто привел текст, но не помню точные имена, а вот написание - 100% так.

p.s. спасибо за код, ща буду пробовать (у меня тут есть литературка, но там немного по другому все, может поэтому и не работало).
Записан
Nimetz
Гость
« Ответ #5 : 03-10-2005 17:37 » 

База:
http://www.php.net/manual/ru/function.file.php
Код:
$f = file("filename");
for ($i = 0; $i < count($f); $i++ )
{
 // ... обработка строк
}
Будет лучше, если ты примедешь сами строки.
Например, не я ясно:
1) "Все числа кроме [time] целые" - значит действительное число? Какой фомат? Прямоугольные скобки реально есть?
2) "х - постоянный параметр" - как это в тексте будет?
3) "#1" - знак "#" присутствует?
4) "param0 и param1 - взамидойствие между типами (текст)" - какой текст? Пробелы есть, или ограничители?

Для разбора строк на лексические состовляющие рекомендую регулярные выражения.
Дополню:
2) в тексте так и будет х
3) знака # нет
4) текст типа Audi-A4 или BMW-M5_E39 (марки машин к примеру указаны)

т.е. {x.g.Audi-A4 70 1}
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 03-10-2005 18:30 » 

http://www.php.net/manual/ru/function.preg-match.php

Код:
// Регулярное выражение стоит проверить - возможна ошибка.
if ( preg_match(
  '/^\[(\d+\.\d+)\] {x\.([gr])\.([^ ]*) (\d+) (\d+)} ([^ ]*)(?: {x\.([gr])\.([^ ]*) (\d+) (\d+)} ([^ ]*))?/',
  $f[$i], $res) )
{
    // $res[0] - вся строка
    // $res[1....] - выделенные скобками части строки
}
Напр., для строки "[142.80] {x.g.name 69 2} action {x.r.name 62 1} result"
$res:
1. "142.80"
2. "g"
3. "name"
4. "62"
5. "2"
6. "action"
7. "r"
8. "name"
9. "62"
10. "1"
11. "result"
Для "[15.18] {x.g.name 59 1} create" элементы с 7 по 11 будут неопределены.
« Последнее редактирование: 20-12-2007 19:43 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines