Привет кодирам помогите плиз
Требуется вывести часть текста вокруг искомого слова, а не выводить весь текст из базы данных .
Выглядит так:
Нашел в сети этот код, то что надо! но не могу понять как внедрить его в страницу поиска :(
/**
*
* @param string $data строка в которой ищем
* @param string $word что ищем
* @param integer $interval интервал символов до и символов после
* @param bool $ci нечувствителен к регистру по умолчанию true
* @return string|false результат, если false - нет вхождения
*/
function strchop($data,$word,$interval,$ci=true)
{
//if($ci){$position=stripos($data,$word);}else{$position = strpos($data,$word);};
$position = $ci?mb_stripos($data,$word):mb_strpos($data,$word);
//ничего нет - вернули false
if(!$position) return false;
//Определяем стартовую позицию новой строки
$start_position = $position - $interval;
//От конца слова определили конечный интервал
$end_position = $position + mb_strlen($word) + $interval;
//Если стартовая позиция отрицательная делаем в 0
if($start_position < 0) $start_position = 0;
//определяем длину новой строки
$len = $end_position - $start_position;
$length = (mb_strlen($data) > $len) ? mb_strripos(mb_substr($data, 0, $len), ' ') : $len;
//вернули результат
$kusok = '...'.mb_substr($data,$start_position,$length, 'UTF-8').'...';
return str_replace($word, "<span class=\"word\">".$word."</span>", $kusok);
}
Код который выводит по заданному слову только начало статьи из бд content
Даже если искать слово которое в конце статьи, всё равно выводить начало статьи!
$content=NULL;
$contentArray=explode(" ",$row_searchResultsSample['content']);
$fileCount=0;
if(is_array($contentArray)){
foreach ($contentArray as $key) {
$fileCount++;
if($fileCount<32){
$LowerStr=strtoupper($key);
$LowersearcTerm=strtoupper($searcTerm);
if(strpos($LowerStr,$LowersearcTerm)!== false){
$keyWard="<strong style=\" text-decoration:underline;\">$key</strong>";
}else{
$keyWard=$key;
}
$content.=$keyWard." ";
}
}
}
return $content;
}
Помогите плиз