поиск по сайту (в MySQL)

Space

Новичок
поиск по сайту (в MySQL)

трабла такая:
- нужно обрезать текст, собержащий искомое слово с двух сторон (от найденного слова).


пример:
----------------


ТЕКСТ "
киберпреступлений пугает потребителей, которые пользуются КРЕДИТными карточками и сохраняют информацию финансового
"

где ИСКОМОЕ СЛОВО "КРЕДИТ", так вот мне надо с двух сторон обрезать, так что бы осталось(к примеру) по 100 симовлов с краев...

пример должного результата:

"
...лей, которые пользуются КРЕДИТными карточками и сохраняют инфор...
"


----------------


код:

PHP:
// подключаемые таблицы для поиска
	$DB_tables="news|i_trade|i_trading|public";

// настройки поиска и вывода записей пользователю
	$where="

 where title LIKE '%".$SearchString."%' OR content LIKE '%".$SearchString."%'

		";


// читаем таблицы в массив
	$DB_tables=split("[|]",$DB_tables);
	foreach ($DB_tables as $is_table)
	{


		$SearchString=ereg_replace("[\']|[\"]|['\"\]|<[^>]*>","",$SearchString);

		$select=mysql_query("select * from `chelbiz_".$is_table."` $where");





		$finded_sum=mysql_num_rows($select);
		if($finded_sum>0)
			{

			echo "[ok] $finded_sum [$is_table]<br>";



	while($a=mysql_fetch_array($select)){

	$string=$a[content];
	$string=ereg_replace("[\']|[\"]|['\"\]|<[^>]*>","",$string);





// обрезаем текст, т.е. вот тут ,собственно, нужна помощь..

//$string - текст, где найденно искомое слово
//$SearchString - это искомое слово
$start = strpos($string, $SearchString);
$new_string = substr($string, $start - 100, 200 + strlen($SearchString));

echo "!$new_string!";
// 



	$string = eregi_replace("($SearchString)",'<span style="background-color:yellow;">\\1</span>', $string);

	echo "$string<br><br><br>";





	} // while

echo "<hr>";



			}
		if($finded_sum==0)
			{
			echo "[no] $finded_sum [$is_table]<br>";
			}
			

	}

и еще, выставленный код обрабатывает корректно строку, когда в тексте встречается один раз искомое слово, если больше одного, то глючит. и если будет найденно больше одного слова, то, соответственно, выводить результат еще одной строкой.
 

Bloody

Guest
Ответ почти готовый :о)
$new_string = substr($string, $start - 100, ($start + strlen($SearchString)+100>strlen($string) ? strlen($string) : ($start + strlen($SearchString)+100)));
 
Сверху