Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите с PHP не могу разобраться / 10 сообщений из 10, страница 1 из 1
05.02.2009, 01:40
    #35797991
hhrak1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
Подскажите пожалуйста мне. У меня такая проблема, мне необходимо открыть файл, найти в нем слово или выражение, и скопировать то, что следует после него, т.е. в файле написано: диванов - 20 шт. мне надо найти эту 20 по слову диванов, и вывести у себя в лайбле. Я попытался скопировать строчки целиком из файла в базу, с файлом txt у меня получилось, а вот с файлом PHP НЕ ПОЛУЧАЕТСЯ, копируется сразу весь файл в строчку, а не поотдельности каждая.
...
Рейтинг: 0 / 0
05.02.2009, 08:58
    #35798140
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
Обычно в файлах с расширением PHP хранится код скриптов написанных на PHP, а не данные, но реально файл может содержать что угодно имея какое-угодно расширение. Ни одна ОС это не запрещает.
Если это сохраненная страничка интернет-браузера, то это уже HTML - результат работы PHP кода. HTML это не текст, там переходов на новую строку может и не быть.

Покажи код, которым ты пытаешься из файла данные брать и пример файла выложи.
...
Рейтинг: 0 / 0
05.02.2009, 09:41
    #35798207
hhrak1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
вот код:
DIMENSION ttt(250)
SET PATH TO "c:\klik\"
=FCLOSE("111.php") && Закdываем файл
IF FILE('111.php')
gnErrFile = FOPEN('111.php',12)
ELSE
gnErrFile = FCREATE('111.php')
ENDIF

USE text
b=1
DO while !FEOF(gnErrFile)
_str= FGETS(gnErrFile,8192)
ttt(b)=_str
APPEND FROM ARRAY ttt
skip
b=b+1
ENDDO
=FCLOSE(gnErrFile)
CLOSE all

вот кусочек
<td><font size="-2">Пользователей:</font></td>
<td><font size="-2" color="green">712</font></td>

т.е. нужно найти Пользователей: и занести в переменную 712
...
Рейтинг: 0 / 0
05.02.2009, 10:24
    #35798300
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
hhrak1вот кусочек
<td><font size="-2">Пользователей:</font></td>
<td><font size="-2" color="green">712</font></td>

т.е. нужно найти Пользователей: и занести в переменную 712
Как я и предполагал - это HTML. Найди и почитай где-нибудь про язык разметки HTML. Многое прояснится.
То же самое означают следующие наборы:
Код: plaintext
<td><font size="-2">Пользователей:</font></td><td><font size="-2" color="green"> 712 </font></td>
или
Код: plaintext
1.
2.
3.
4.
5.
6.
<td>
   <font size="-2">Пользователей:</font>
</td>
<td>
   <font size="-2" color="green"> 712 </font>
</td>

В общем случае надо не построчно читать, а читать весь файл в переменную, а потом ее парсить.
Код: plaintext
lcHTML = FileToStr('111.php')
Именно в этом случае можно сделать примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
lcRet = ''
lnPos = at('Пользователей:', lcHTML)
if lnPos >  0 
   lcHTML2 = substr(lcHTML, lnPos)
   lnPos2 = at('<font size="-2" color="green">', lcHTML2)
   if lnPos2 >  0 
      lcRet = substr(lcHTML2, lnPos2 +  30 ) &&  30  это длина строки '<font size="-2" color="green">'
      lcRet = left(lcRet, at('<', lcRet) -  1 )
   endif
endif
? lcRet

Правда это может недолго проработать, т.к. <font size="-2" color="green"> означает маленький зеленый шрифт, завтра автор сайта дизайн сменит и у тебя все перестанет работать. Парсить HTML очень неблагодарное занятие.
...
Рейтинг: 0 / 0
05.02.2009, 12:34
    #35798802
hhrak1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
Спасибо ОГРОМНОЕ!!! это именно то, что мне надо, вот только небольшая проблемка появилась со шрифтом, меняются буквы на латинские, я тут уже просмотрел про эту проблему, но везде указано про файл конфигурации для exe файлов, а у меня еще не компилированая программа. Как решить проблемку
...
Рейтинг: 0 / 0
05.02.2009, 12:38
    #35798822
Подскажите с PHP не могу разобраться
hhrak1Спасибо ОГРОМНОЕ!!! это именно то, что мне надо, вот только небольшая проблемка появилась со шрифтом, меняются буквы на латинские, я тут уже просмотрел про эту проблему, но везде указано про файл конфигурации для exe файлов, а у меня еще не компилированая программа. Как решить проблемку
Так же, как и для ехе.
...
Рейтинг: 0 / 0
06.02.2009, 01:33
    #35800659
hhrak1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
Извиняюсь, но снова проблемка.... код отличный просто супер, работает на все 100, но вот как организовать поиск дальше, допустим у меня слов Пользователей: пять штук в файле, как их все найти поочереди?
...
Рейтинг: 0 / 0
06.02.2009, 15:59
    #35802233
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
hhrak1Извиняюсь, но снова проблемка.... код отличный просто супер, работает на все 100, но вот как организовать поиск дальше, допустим у меня слов Пользователей: пять штук в файле, как их все найти поочереди?

Простейший способ найти 2-е упоминание:
Код: plaintext
lnPos = at('Пользователей:', lcHTML,  2 )
Как 3, 4 и 5 найти думаю догадаешься
...
Рейтинг: 0 / 0
07.02.2009, 23:28
    #35803884
hhrak1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
Почему не добавляются разные записи в базу, а только одна первая запись 10 раз...
Ведь должно работать, голова трещит уже...
USE text
lcHTML2 = FileToStr('111.php')
i=10
DIMENSION ttt(10)
FOR w=1 TO i
lcRet4 = ''
lnPos2 = at('<a href="view.php?ad=', lcHTML2,w)
if lnPos2 > 0
lcRet4 = substr(lcHTML2, lnPos2)
ttt(w) = left(lcRet4, at('<', lcRet4)+25)
APPEND from ARRAY ttt(w)
ENDIF
ENDFOR
p/S после ad= есть еще пять символов, которые разные
...
Рейтинг: 0 / 0
07.02.2009, 23:49
    #35803902
hhrak1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с PHP не могу разобраться
Ура получилось через:
USE text
lcHTML2 = FileToStr('111.php')
i=10
DIMENSION ttt(10)
FOR w=1 TO i
lcRet4 = ''
lnPos2 = at('<a href="view.php?ad=', lcHTML2,w)
if lnPos2 > 0
lcRet4 = substr(lcHTML2, lnPos2)
lcret4 = left(lcRet4, at('<', lcRet4)+25)
APPEND blank
replace txt WITH lcret4 additive

ENDIF
ENDFOR
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите с PHP не могу разобраться / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]