Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделение слов в HTML коде, Не могу придумать нужный алгоритм 
V
    Опции темы
BuShaRt
Дата 29.6.2006, 04:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Вообшем тяк... Есть определенный html - код...Состоит из 8 строк... мы разбираем третью строку, обрезаем лишнее иразбиваем на строки (благо каждая заканчиваеться символом ";"...
Код

function ReadHTML($l)
    {    
        $l = ссылка на страничку
        $logs = file ($l);
        for ($f = 27; $f < strlen($logs[2])-9; $f++)        
            {
                $rlog .= $logs[2][$f];
            } 
        $text = split(";",$rlog);
        return $text;
    }


Едимс дальше... теперь мне нужно кажду строку проверять на наличие определенного слова в ней... Как это можно осуществить? 
PM MAIL   Вверх
MPx
Дата 29.6.2006, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 17.11.2005

Репутация: 1
Всего: 1



Не знаю, как это сделать с наибольшей производительностью... 
Но один из вариантов - использовать регулярное выражение.
Зависит от того, сколько слов нужно проверить. Если слово одно, то просто заменять его с $word на <b>$word</b> с помощью функции str_replace.

Вот и простейшая подсветка ;) 
PM MAIL ICQ MSN   Вверх
BuShaRt
Дата 29.6.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



MPx,
Хм... Мне нужно выделит слово не графически... А занести в переменную... 

Код

<font class=fighttime>17:40</font> Бой между <b><font class=gr_f>Орк</font></b>[13]<a href="pbots.cgi?486437" target=_blank><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a> и <b><font class=gr_s>butcher_</font></b>[13]<a href="pinfo.cgi?butcher_" target=_blank><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a> начался (нападение бота).;



Вот второ второй элимент массива, первой строки=) Теперь из наего надо выдрать слова Орк и butcher_, но в следуший раз слова будут другие, я не знаю какие... Как я уже думал, нужно выдерать все содержимое между тегами Font:

<font class=gr_f>Орк</font>
и
<font class=gr_s>butcher_</font>

Были конечно идеи понарезать все splitом, но я думаю это совсем не рациональый подход... 
PM MAIL   Вверх
BuShaRt
Дата 29.6.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



 smile  
PM MAIL   Вверх
z-END
Дата 29.6.2006, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(BuShaRt @  29.6.2006,  17:11 Найти цитируемый пост)
 Как я уже думал, нужно выдерать все содержимое между тегами Font:

<font class=gr_f>Орк</font>
и
<font class=gr_s>butcher_</font>

ну дык и что тебе мешает именно так и сдеалть?! 
ищещь (strpos) "<font class=gr_f>" запоминаешь эту позицию, потом от нее ищещь первый символ <
присваеваешь твоей переменной все что между ними(substr) 


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
MPx
Дата 29.6.2006, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 17.11.2005

Репутация: 1
Всего: 1



preg_match_all("/<font class=gr_(.+?)>(.+?)<\/font>/",$str,$out);
print_r($out);

На скорую руку... так должно сработать smile 
PM MAIL ICQ MSN   Вверх
BuShaRt
Дата 29.6.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



В случае
Цитата

preg_match_all("/<font class=gr_(.+?)>(.+?)<\/font>/",$str,$out);
print_r($out);


выводит Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )  
PM MAIL   Вверх
MPx
Дата 29.6.2006, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 17.11.2005

Репутация: 1
Всего: 1



Код

$str = "<font class=fighttime>17:40</font> Бой между <b><font class=gr_f>Орк</font></b>[13]<a href='pbots.cgi?486437' target=_blank><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a> и <b><font class=gr_s>butcher_</font></b>[13]<a href=\"pinfo.cgi?butcher_\" target=_blank><img src=http://image.neverlands.ru/chat/info.gif width=11 height=12 border=0 align=absmiddle></a> начался (нападение бота).;";

preg_match_all("/<font class=gr_(?:.+?)>(.+?)<\/font>/",$str,$out);
print_r($out[1]);


Всё выводит.

Код

Array
(
    [0] => Орк
    [1] => butcher_
)


Я немножко его на выводе украсил, но пред. тоже был верный. 
PM MAIL ICQ MSN   Вверх
BuShaRt
Дата 29.6.2006, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



MPx, 
=)) Подправил свой код - оказываеться там был недочет...
После чего код заработал =) Пасибки 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.2061 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.