morgan1991
22-03-2010, 23:16
Здравствуйте!
Вот задумал сделать на сайте подсказку к умным словам.
Есть в базе текст, он выводится на сайте, в нём есть слова непонятные для новичков, когда пользователь наводит на некоторые слова на сайте, то видит описание к слову.
Нужно сделать функцию которая будет:
Брать в БД в первой ячейке слово (непонятное), во второй описание к этому слову.
Затем заменяет все слова в тексте на такой вид:
<text title='описание' style='cursor:nw-resize'>слово</text>
Сделал такую функцию, но работает косячно...
Недостатки:
1. Заменяет текст в ссылках, между и в тегах <a href></a> <img src /> и т.д., а не должна.
2. Необходио, чтобы функция искала и заменяла не только строго совпадение из БД, но и похожие слова, т.е. с изменённым окончанием и т.д.
Например "Редактор реестра" и "редакторе реестра", должна заменять одинаково.
3. Чувствительность к регистру.
Пробовал так:
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;
}
И так:
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;
}
Одинаково плохо...
Помогите пожалуйста доработать функцию...
Вот задумал сделать на сайте подсказку к умным словам.
Есть в базе текст, он выводится на сайте, в нём есть слова непонятные для новичков, когда пользователь наводит на некоторые слова на сайте, то видит описание к слову.
Нужно сделать функцию которая будет:
Брать в БД в первой ячейке слово (непонятное), во второй описание к этому слову.
Затем заменяет все слова в тексте на такой вид:
<text title='описание' style='cursor:nw-resize'>слово</text>
Сделал такую функцию, но работает косячно...
Недостатки:
1. Заменяет текст в ссылках, между и в тегах <a href></a> <img src /> и т.д., а не должна.
2. Необходио, чтобы функция искала и заменяла не только строго совпадение из БД, но и похожие слова, т.е. с изменённым окончанием и т.д.
Например "Редактор реестра" и "редакторе реестра", должна заменять одинаково.
3. Чувствительность к регистру.
Пробовал так:
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;
}
И так:
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;
}
Одинаково плохо...
Помогите пожалуйста доработать функцию...