![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 14:58 |