[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражения для самых маленьких
Страницы: 1, 2
FatCat
раз
$result_txt = preg_replace("# программ(.+?) #is", " <b>программ\\1</b> ", $txt);

два
$txt = " ".$txt." ";
$txtl = strtolower($txt);
$len = strlen($txtl);
$start = array();
$finish = array();
for($i=0;$i<$len;$i++)
{
if( substr($txtl,$i,9) == " программ" )
{
$start[$i] = $i;
$pos = $i+9;
while( substr($txtl,$pos,1) != " " and $pos <= $len )$pos++;
if($pos < $len)$finish[$i] = $pos;
else unset($start[$i]);
}
}

$result_txt = "";
for($i=0;$i<$len;$i++)
{
if( in_array($i,$start) )$result_txt .= "<b>";
$result_txt .= substr($txt,$i,1);
if( in_array($i,$finish) )$result_txt .= "</b>";
}
$result_txt = substr($result_txt,1,-1);

Эти две функции делают одно и то же: поиск и выделение целого слова по началу.
Первая выглядит элегантней. Но кинь текст мегабайт на 10 с сотнями или тысячами вхождений заданного слова, и ты подвесишь сервер на пару минут; вторая функция отстреляется буквально за секунду.

_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.