Space
Новичок
поиск по сайту (в MySQL)
трабла такая:
- нужно обрезать текст, собержащий искомое слово с двух сторон (от найденного слова).
пример:
----------------
ТЕКСТ "
киберпреступлений пугает потребителей, которые пользуются КРЕДИТными карточками и сохраняют информацию финансового
"
где ИСКОМОЕ СЛОВО "КРЕДИТ", так вот мне надо с двух сторон обрезать, так что бы осталось(к примеру) по 100 симовлов с краев...
пример должного результата:
"
...лей, которые пользуются КРЕДИТными карточками и сохраняют инфор...
"
----------------
код:
и еще, выставленный код обрабатывает корректно строку, когда в тексте встречается один раз искомое слово, если больше одного, то глючит. и если будет найденно больше одного слова, то, соответственно, выводить результат еще одной строкой.
трабла такая:
- нужно обрезать текст, собержащий искомое слово с двух сторон (от найденного слова).
пример:
----------------
ТЕКСТ "
киберпреступлений пугает потребителей, которые пользуются КРЕДИТными карточками и сохраняют информацию финансового
"
где ИСКОМОЕ СЛОВО "КРЕДИТ", так вот мне надо с двух сторон обрезать, так что бы осталось(к примеру) по 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>";
}
}
и еще, выставленный код обрабатывает корректно строку, когда в тексте встречается один раз искомое слово, если больше одного, то глючит. и если будет найденно больше одного слова, то, соответственно, выводить результат еще одной строкой.