Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   PHP|Подсказка к ключевым словам (http://forum.oszone.net/showthread.php?t=170952)

morgan1991 22-03-2010 23:16 1374907

PHP|Подсказка к ключевым словам
 
Здравствуйте!
Вот задумал сделать на сайте подсказку к умным словам.
Есть в базе текст, он выводится на сайте, в нём есть слова непонятные для новичков, когда пользователь наводит на некоторые слова на сайте, то видит описание к слову.
Нужно сделать функцию которая будет:
Брать в БД в первой ячейке слово (непонятное), во второй описание к этому слову.
Затем заменяет все слова в тексте на такой вид:
Код:

<text title='описание' style='cursor:nw-resize'>слово</text>
Сделал такую функцию, но работает косячно...
Недостатки:
1. Заменяет текст в ссылках, между и в тегах <a href></a> <img src /> и т.д., а не должна.
2. Необходио, чтобы функция искала и заменяла не только строго совпадение из БД, но и похожие слова, т.е. с изменённым окончанием и т.д.
Например "Редактор реестра" и "редакторе реестра", должна заменять одинаково.
3. Чувствительность к регистру.
Пробовал так:
PHP код:

function HelpMenuParser($txt)
{
    include 
"config.php";
    
$LinkMySqlConn = @mysql_connect($DBHost$DBLogin$DBPass) or die("err");
    @
mysql_select_db($DBName) or die("err");
    
$get_products mysql_query("SELECT * FROM `".$TablePrefix."helpmenu`");
        
$Catsk db_result_to_array($get_products);
    foreach (
$Catsk as $Catk)
    {
        
$StringSplit explode(','$Catk[1]);
        foreach (
$StringSplit as $StringSplits)
        {
            
$txt preg_replace"#(".$StringSplits.")#is""<text title='".$Catk[2]."' style='cursor:nw-resize'>$1</text>"$txt);
            
        }
    }
    return 
$txt;


И так:
PHP код:

function HelpMenuParser($txt)
{
    include 
"config.php";
    
$LinkMySqlConn = @mysql_connect($DBHost$DBLogin$DBPass) or die("err");
    @
mysql_select_db($DBName) or die("err");
    
$get_products mysql_query("SELECT * FROM `".$TablePrefix."helpmenu`");
        
$Catsk db_result_to_array($get_products);
    foreach (
$Catsk as $Catk)
    {
        
$txt preg_replace"#(".$Catk[1].")#is""<text title='".$Catk[2]."' style='cursor:nw-resize'>$1</text>"$txt);    
    }
    return 
$txt;


Одинаково плохо...
Помогите пожалуйста доработать функцию...

Sham 23-03-2010 15:21 1375380

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

morgan1991 23-03-2010 21:34 1375611

Sham, не могу скачать с данного сайта, нужно регаться, а у меня не получается....


Время: 20:43.

Время: 20:43.
© OSzone.net 2001-