Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem - zaznaczanie tekstu w wynikach szukania
wojto
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Mam problem z moim skryptem, otoz mam wyszukiwarke i po znalezieniu tekstu o zmiennej $tekst w bazie danych chce, by mi w wynikach wyszukiwania te wyrazy wyroznilo jakims kolorem.
Mam taki kod (skrocony):
[php:1:1a51736cab]$sql=mysql_query("SELECT LEFT(tekst,250) AS skrot FROM newsy WHERE skrot LIKE '%$tekst%'");
while($row=mysql_fetch_array($sql))
{
$row[skrot] = htmlspecialchars($row[skrot]);
$row[skrot] = stripslashes($row[skrot]);
$row[skrot] = nl2br($row[skrot]);
$row[skrot] = eregi_replace("www.([^[]*)","<a href="http://www.1" target="_blank">1</a>",$row[skrot]);
$row_wyniki[skrot] = eregi_replace("([^[]*)","<a href="1" target="_blank">1</a>",$row[skrot]);
$row_wyniki[skrot] = eregi_replace("+)]([^[]*)","<a href="http://1" target="_blank">2</a>",$row[skrot]);
$row_wyniki[skrot] = eregi_replace("+)]([^[]*)","<a href="1" target="_blank">2</a>",$row[skrot]);

// w tym kodzie wyzej $row[skrot] przechodzi przez rozne f-cje, tak, ze tagi bbcode sa zamieniane na urle

$row[tytul]=eregi_replace("$row[skrot]","<span style="background-color: yellow">$row[skrot]</span>",$row[tytul]);
$row[skrot]=eregi_replace("$row[skrot]","<span style="background-color: yellow">$row[skrot]</span>",$row[skrot]);

echo $row[skrot];
}[/php:1:1a51736cab]

teraz problem lezy w tym, ze jak mam w tekscie link, czyli np. www.mojastrona.pl a wyszukuje wyrazu "strona", to ten link mi sie psuje, bo przed i po wyrazie strona jest dodawane <span...>, i link ma postac:[php:1:1a51736cab]www.moja<span style="background-color: yellow">strona</span>.pl[/php:1:1a51736cab] wiec jest zly
prosilbym o wszelkie wskazowki, z gory thx
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wojto
post
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


podobna wyszukiwarka dziala na phpbb2, tutaj wszystko jest ok.
Kod z phpbb2:
[php:1:eee6945bcc]<?php
//
// Was a highlight request part of the URI?
//
$highlight_match = $highlight = '';
if (isset($HTTP_GET_VARS['highlight']))
{
// Split words and phrases
$words = explode(' ', trim(htmlspecialchars(urldecode($HTTP_GET_VARS['highlight']))));

for($i = 0; $i < sizeof($words); $i++)
{
if (trim($words[$i]) != '')
{
$highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', 'w*', phpbb_preg_quote($words[$i], '#'));
}
}
unset($words);

$highlight = urlencode($HTTP_GET_VARS['highlight']);
}
[/php:1:eee6945bcc]

oraz

[php:1:eee6945bcc]
//
// Highlight active words (primarily for search)
//
if ($highlight_match)
{
// This was shamelessly 'borrowed' from volker at multiartstudio dot de
// via php.net's annotated manual
$message = str_replace('"', '"', substr(preg_replace('#(>(((?>([^><]+|(?R)))*)<))#se', "preg_replace('#b(" . $highlight_match . ")b#i', '<span style="color:#" . $theme['fontcolor3'] . ""><b>1</b></span>', '0')", '>' . $message . '<'), 1, -1));
}

?>[/php:1:eee6945bcc]
jednak sa tu wyrazenia reguralne, a tych wogole nie umie. Moze ktos mi pomoc rozwiazac ten problem? lub ma cos takiego gotowe? z gory dziekuje
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 14:58